swh.web 0.16.3__py3-none-any.whl → 0.16.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. swh/web/add_forge_now/templates/add-forge-request-dashboard.html +5 -2
  2. swh/web/api/views/origin.py +2 -2
  3. swh/web/archive_coverage/views.py +4 -7
  4. swh/web/badges/__init__.py +1 -1
  5. swh/web/badges/assets/index.js +40 -14
  6. swh/web/browse/assets/browse/browse.css +5 -0
  7. swh/web/browse/assets/browse/sidetabs.js +3 -16
  8. swh/web/browse/templates/browse-iframe.html +9 -7
  9. swh/web/browse/templates/browse-origin-visits.html +2 -2
  10. swh/web/browse/templates/browse-revision.html +5 -3
  11. swh/web/browse/templates/includes/content-display.html +10 -5
  12. swh/web/browse/templates/includes/readme-display.html +3 -2
  13. swh/web/browse/templates/includes/show-metadata.html +3 -2
  14. swh/web/browse/templates/includes/sidetabs.html +9 -7
  15. swh/web/browse/templates/includes/top-navigation.html +2 -1
  16. swh/web/browse/tests/views/test_origin.py +3 -1
  17. swh/web/deposit/templates/deposit-admin.html +6 -1
  18. swh/web/static/css/{archive_coverage.70eba3d32ed75472d638.css → archive_coverage.df54ae8fe40453ecd972.css} +2 -2
  19. swh/web/static/css/archive_coverage.df54ae8fe40453ecd972.css.map +1 -0
  20. swh/web/static/css/browse.633076034514e6a3977d.css +2 -0
  21. swh/web/static/css/browse.633076034514e6a3977d.css.map +1 -0
  22. swh/web/static/css/guided_tour.d496a0c252e1bb193496.css +2 -0
  23. swh/web/static/css/{guided_tour.62c03630e944b8b8d9ad.css.map → guided_tour.d496a0c252e1bb193496.css.map} +1 -1
  24. swh/web/static/css/{highlightjs.0c1b181eb006699a4c3e.css → highlightjs.37238c93749cb449800d.css} +2 -2
  25. swh/web/static/css/highlightjs.37238c93749cb449800d.css.map +1 -0
  26. swh/web/static/css/origin_visits.9a796c4df6606bd9905f.css +2 -0
  27. swh/web/static/css/origin_visits.9a796c4df6606bd9905f.css.map +1 -0
  28. swh/web/static/css/vendors.a4844da6ce54cbc04960.css +24 -0
  29. swh/web/static/css/vendors.a4844da6ce54cbc04960.css.map +1 -0
  30. swh/web/static/css/{webapp.4655323082740f1a4862.css → webapp.e995faa24f8c84db0d06.css} +2 -2
  31. swh/web/static/css/webapp.e995faa24f8c84db0d06.css.map +1 -0
  32. swh/web/static/js/add_forge_now.e85d09463e38c1e19632.js +3 -0
  33. swh/web/static/js/add_forge_now.e85d09463e38c1e19632.js.map +1 -0
  34. swh/web/static/js/auth.06c697ab58b81d08ebce.js +3 -0
  35. swh/web/static/js/auth.06c697ab58b81d08ebce.js.map +1 -0
  36. swh/web/static/js/badges.50941e27bf5e4453b0e0.js +3 -0
  37. swh/web/static/js/badges.50941e27bf5e4453b0e0.js.LICENSE.txt +6 -0
  38. swh/web/static/js/badges.50941e27bf5e4453b0e0.js.map +1 -0
  39. swh/web/static/js/browse.3f22819b69002c8b6407.js +3 -0
  40. swh/web/static/js/browse.3f22819b69002c8b6407.js.map +1 -0
  41. swh/web/static/js/deposit.d47e18177b16ccdbdb84.js.map +1 -1
  42. swh/web/static/js/{highlightjs.14fc09414685bf90c554.js → highlightjs.516e784a1e62011c7605.js} +3 -3
  43. swh/web/static/js/highlightjs.516e784a1e62011c7605.js.map +1 -0
  44. swh/web/static/js/mailmap.de04f685e56eff5b627f.js +3 -0
  45. swh/web/static/js/mailmap.de04f685e56eff5b627f.js.map +1 -0
  46. swh/web/static/js/mathjax.98ef576f318f1a0b0c4a.js.map +1 -1
  47. swh/web/static/js/pdf.worker.min.js +1 -1
  48. swh/web/static/js/pdfjs.018d9890c044b3612ece.js +3 -0
  49. swh/web/static/js/pdfjs.018d9890c044b3612ece.js.map +1 -0
  50. swh/web/static/js/{revision.61c9277f4a4c63df0f45.js → revision.122a31614a5f9abffc3c.js} +3 -3
  51. swh/web/static/js/revision.122a31614a5f9abffc3c.js.map +1 -0
  52. swh/web/static/js/save_code_now.d4d8fc47420a4badb683.js +3 -0
  53. swh/web/static/js/save_code_now.d4d8fc47420a4badb683.js.map +1 -0
  54. swh/web/static/js/vault.d2ec3dd1d84a8d038a6c.js +3 -0
  55. swh/web/static/js/vault.d2ec3dd1d84a8d038a6c.js.map +1 -0
  56. swh/web/static/js/vendors.f62cb86cf3b92ae280ee.js +3 -0
  57. swh/web/static/js/{vendors.9fc5b97b8e4691b7272e.js.LICENSE.txt → vendors.f62cb86cf3b92ae280ee.js.LICENSE.txt} +5 -1
  58. swh/web/static/js/vendors.f62cb86cf3b92ae280ee.js.map +1 -0
  59. swh/web/static/js/webapp.e93873983e400db67bf8.js +3 -0
  60. swh/web/static/js/{webapp.c5e37f8f7bfc8bb87ad8.js.map → webapp.e93873983e400db67bf8.js.map} +1 -1
  61. swh/web/static/jssources/assets/src/utils/functions.js +4 -4
  62. swh/web/static/jssources/datatables.net/js/dataTables.mjs +108 -44
  63. swh/web/static/jssources/datatables.net-fixedheader/js/dataTables.fixedHeader.mjs +10 -4
  64. swh/web/static/jssources/datatables.net-fixedheader/node_modules/datatables.net/js/dataTables.mjs +14027 -0
  65. swh/web/static/jssources/datatables.net-fixedheader-bs5/node_modules/datatables.net/js/dataTables.mjs +14027 -0
  66. swh/web/static/jssources/datatables.net-fixedheader-bs5/node_modules/datatables.net-bs5/js/dataTables.bootstrap5.mjs +81 -0
  67. swh/web/static/jssources/highlightjs-macaulay2/dist/macaulay2.min.js +3 -3
  68. swh/web/static/jssources/jslicenses.json +1 -1
  69. swh/web/static/jssources/pdfjs-dist/build/pdf.worker.mjs +885 -596
  70. swh/web/static/jssources/pdfjs-dist/legacy/build/pdf.mjs +4982 -4566
  71. swh/web/static/jssources/swh/web/badges/assets/index.js +40 -14
  72. swh/web/static/jssources/swh/web/browse/assets/browse/sidetabs.js +3 -16
  73. swh/web/static/jssources/swh/web/vault/assets/vault-ui.js +6 -4
  74. swh/web/static/jssources/swh/web/webapp/assets/webapp/webapp-utils.js +18 -1
  75. swh/web/static/security.txt +3 -0
  76. swh/web/static/webpack-stats.json +240 -235
  77. swh/web/utils/swh_templatetags.py +8 -13
  78. swh/web/vault/assets/vault-ui.js +6 -4
  79. swh/web/webapp/assets/webapp/webapp-utils.js +18 -1
  80. swh/web/webapp/assets/webapp/webapp.css +8 -0
  81. swh/web/webapp/templates/layout.html +13 -10
  82. swh/web/webapp/tests/test_views.py +16 -1
  83. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/METADATA +2 -3
  84. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/RECORD +98 -93
  85. swh/web/static/css/archive_coverage.70eba3d32ed75472d638.css.map +0 -1
  86. swh/web/static/css/browse.0a250d3b07ce628588a5.css +0 -2
  87. swh/web/static/css/browse.0a250d3b07ce628588a5.css.map +0 -1
  88. swh/web/static/css/guided_tour.62c03630e944b8b8d9ad.css +0 -2
  89. swh/web/static/css/highlightjs.0c1b181eb006699a4c3e.css.map +0 -1
  90. swh/web/static/css/origin_visits.88099d68a63f86af2f8e.css +0 -2
  91. swh/web/static/css/origin_visits.88099d68a63f86af2f8e.css.map +0 -1
  92. swh/web/static/css/vendors.1cfc8080eed63af482cf.css +0 -24
  93. swh/web/static/css/vendors.1cfc8080eed63af482cf.css.map +0 -1
  94. swh/web/static/css/webapp.4655323082740f1a4862.css.map +0 -1
  95. swh/web/static/js/add_forge_now.e25d1ad2ab6c45e60b67.js +0 -3
  96. swh/web/static/js/add_forge_now.e25d1ad2ab6c45e60b67.js.map +0 -1
  97. swh/web/static/js/auth.bd2f475f49caa9f84e99.js +0 -3
  98. swh/web/static/js/auth.bd2f475f49caa9f84e99.js.map +0 -1
  99. swh/web/static/js/badges.f02607179ad0264e7522.js +0 -2
  100. swh/web/static/js/badges.f02607179ad0264e7522.js.map +0 -1
  101. swh/web/static/js/browse.fc5d5fafca71e03d2add.js +0 -3
  102. swh/web/static/js/browse.fc5d5fafca71e03d2add.js.map +0 -1
  103. swh/web/static/js/highlightjs.14fc09414685bf90c554.js.map +0 -1
  104. swh/web/static/js/mailmap.631c53127ba5511ebda7.js +0 -3
  105. swh/web/static/js/mailmap.631c53127ba5511ebda7.js.map +0 -1
  106. swh/web/static/js/pdfjs.40675676ebcbdde8baab.js +0 -3
  107. swh/web/static/js/pdfjs.40675676ebcbdde8baab.js.map +0 -1
  108. swh/web/static/js/revision.61c9277f4a4c63df0f45.js.map +0 -1
  109. swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js +0 -3
  110. swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js.map +0 -1
  111. swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js +0 -3
  112. swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js.map +0 -1
  113. swh/web/static/js/vendors.9fc5b97b8e4691b7272e.js +0 -3
  114. swh/web/static/js/vendors.9fc5b97b8e4691b7272e.js.map +0 -1
  115. swh/web/static/js/webapp.c5e37f8f7bfc8bb87ad8.js +0 -3
  116. /swh/web/static/js/{add_forge_now.e25d1ad2ab6c45e60b67.js.LICENSE.txt → add_forge_now.e85d09463e38c1e19632.js.LICENSE.txt} +0 -0
  117. /swh/web/static/js/{auth.bd2f475f49caa9f84e99.js.LICENSE.txt → auth.06c697ab58b81d08ebce.js.LICENSE.txt} +0 -0
  118. /swh/web/static/js/{browse.fc5d5fafca71e03d2add.js.LICENSE.txt → browse.3f22819b69002c8b6407.js.LICENSE.txt} +0 -0
  119. /swh/web/static/js/{highlightjs.14fc09414685bf90c554.js.LICENSE.txt → highlightjs.516e784a1e62011c7605.js.LICENSE.txt} +0 -0
  120. /swh/web/static/js/{mailmap.631c53127ba5511ebda7.js.LICENSE.txt → mailmap.de04f685e56eff5b627f.js.LICENSE.txt} +0 -0
  121. /swh/web/static/js/{pdfjs.40675676ebcbdde8baab.js.LICENSE.txt → pdfjs.018d9890c044b3612ece.js.LICENSE.txt} +0 -0
  122. /swh/web/static/js/{revision.61c9277f4a4c63df0f45.js.LICENSE.txt → revision.122a31614a5f9abffc3c.js.LICENSE.txt} +0 -0
  123. /swh/web/static/js/{save_code_now.4211098f5dd740dc49b4.js.LICENSE.txt → save_code_now.d4d8fc47420a4badb683.js.LICENSE.txt} +0 -0
  124. /swh/web/static/js/{vault.4eaa8dbf376ebe9cdc7f.js.LICENSE.txt → vault.d2ec3dd1d84a8d038a6c.js.LICENSE.txt} +0 -0
  125. /swh/web/static/js/{webapp.c5e37f8f7bfc8bb87ad8.js.LICENSE.txt → webapp.e93873983e400db67bf8.js.LICENSE.txt} +0 -0
  126. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/WHEEL +0 -0
  127. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/licenses/AUTHORS +0 -0
  128. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/licenses/LICENSE +0 -0
  129. {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  {% extends "layout.html" %}
2
2
 
3
3
  {% comment %}
4
- Copyright (C) 2022-2024 The Software Heritage developers
4
+ Copyright (C) 2022-2025 The Software Heritage developers
5
5
  See the AUTHORS file at the top-level directory of this distribution
6
6
  License: GNU Affero General Public License version 3, or any later version
7
7
  See top-level LICENSE file for more information
@@ -119,8 +119,11 @@ See top-level LICENSE file for more information
119
119
  </div>
120
120
  </div>
121
121
  </div>
122
+ {{ next_statuses_for|swh_json_script:"next_statuses_for" }}
122
123
  <script>
123
124
  swh.webapp.initPage('add-forge-now-moderation');
124
- swh.add_forge_now.onRequestDashboardLoad("{{ request_id }}", {{ next_statuses_for | jsonify }});
125
+ swh.add_forge_now.onRequestDashboardLoad(
126
+ "{{ request_id }}", swh.webapp.parseJsonScript('next_statuses_for')
127
+ );
125
128
  </script>
126
129
  {% endblock content %}
@@ -578,7 +578,7 @@ def api_origin_intrinsic_metadata_legacy(request: Request, origin_url: str):
578
578
  """
579
579
  .. http:get:: /api/1/origin/(origin_url)/intrinsic-metadata
580
580
 
581
- This route is deprecated; use http:get:/api/1/intrinsic-metadata/origin/ instead
581
+ This route is deprecated; use :http:get:`/api/1/intrinsic-metadata/origin/` instead
582
582
 
583
583
  Get intrinsic metadata of a software origin (as a JSON-LD/CodeMeta dictionary).
584
584
  """
@@ -590,7 +590,7 @@ def api_origin_intrinsic_metadata_legacy(request: Request, origin_url: str):
590
590
  enrich_fn=enrich_origin,
591
591
  request=request,
592
592
  )
593
- return response[0]
593
+ return response[0] if response else None
594
594
 
595
595
 
596
596
  class OriginUrlQuerySerializer(serializers.Serializer):
@@ -20,10 +20,6 @@ from swh.web.config import scheduler
20
20
  from swh.web.utils import django_cache, reverse
21
21
  from swh.web.utils.archive import count_origins
22
22
 
23
- _swh_arch_overview_doc = (
24
- "https://docs.softwareheritage.org/devel/architecture/overview.html"
25
- )
26
-
27
23
  # Current coverage list of the archive in a high level overview fashion,
28
24
  # categorized as follow:
29
25
  # - listed origins: origins discovered using a swh lister
@@ -35,7 +31,7 @@ _swh_arch_overview_doc = (
35
31
  listed_origins: Dict[str, Any] = {
36
32
  "info": (
37
33
  "These software origins get continuously discovered and archived using "
38
- f'the <a href="{_swh_arch_overview_doc}#listers" target="_blank" '
34
+ 'the <a href="https://docs.softwareheritage.org/user/listers.html" target="_blank" '
39
35
  'rel="noopener noreferrer">listers</a> implemented by Software Heritage.'
40
36
  ),
41
37
  "origins": [
@@ -411,8 +407,9 @@ legacy_origins: Dict[str, Any] = {
411
407
  deposited_origins: Dict[str, Any] = {
412
408
  "info": (
413
409
  "These origins are directly pushed into the archive by trusted partners "
414
- f'using the <a href="{_swh_arch_overview_doc}#deposit" target="_blank" '
415
- 'rel="noopener noreferrer">deposit</a> service of Software Heritage.'
410
+ "using the "
411
+ '<a href="https://docs.softwareheritage.org/devel/architecture/overview.html#deposit" '
412
+ 'target="_blank" rel="noopener noreferrer">deposit</a> service of Software Heritage.'
416
413
  ),
417
414
  "origins": [
418
415
  {
@@ -6,7 +6,7 @@
6
6
  from base64 import b64encode
7
7
  from typing import Optional, cast
8
8
 
9
- from pybadges import badge
9
+ from pybadges2 import badge
10
10
 
11
11
  from django.contrib.staticfiles import finders
12
12
  from django.http import HttpRequest, HttpResponse
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Copyright (C) 2019-2023 The Software Heritage developers
2
+ * Copyright (C) 2019-2025 The Software Heritage developers
3
3
  * See the AUTHORS file at the top-level directory of this distribution
4
4
  * License: GNU Affero General Public License version 3, or any later version
5
5
  * See top-level LICENSE file for more information
6
6
  */
7
7
 
8
+ import ClipboardJS from 'clipboard';
9
+
8
10
  import './badges.css';
9
11
 
10
12
  export function showBadgeInfoModal(objectType, objectSWHID) {
@@ -35,22 +37,46 @@ export function showBadgeInfoModal(objectType, objectSWHID) {
35
37
  <a href="${absoluteBadgeLinkUrl}">
36
38
  <img class="swh-badge" src="${absoluteBadgeImageUrl}" alt="Archived | ${objectSWHID}"/>
37
39
  </a>
38
- <div>
39
- <label>HTML</label>
40
- <pre><code class="swh-badge-html html">&lt;a href="${absoluteBadgeLinkUrl}"&gt;
41
- &lt;img src="${absoluteBadgeImageUrl}" alt="Archived | ${objectCoreSWHID}"/&gt;
40
+ <ul class="nav nav-tabs">
41
+ <li class="nav-item">
42
+ <a class="nav-link active" data-bs-toggle="tab" href="#swh-badge-html">HTML</a>
43
+ </li>
44
+ <li class="nav-item">
45
+ <a class="nav-link" data-bs-toggle="tab" href="#swh-badge-markdown">Markdown</a>
46
+ </li>
47
+ <li class="nav-item">
48
+ <a class="nav-link" data-bs-toggle="tab" href="#swh-badge-rst">reStructuredText</a>
49
+ </li>
50
+ </ul>
51
+ <div class="tab-content swh-badges-integrations">
52
+ <div class="tab-pane active" id="swh-badge-html">
53
+ <pre><code class="swh-badge-html html">&lt;a href="${absoluteBadgeLinkUrl}"&gt;
54
+ &lt;img src="${absoluteBadgeImageUrl}" alt="Archived | ${objectCoreSWHID}"/&gt;
42
55
  &lt;/a&gt;</code></pre>
43
- </div>
44
- <div>
45
- <label>Markdown</label>
46
- <pre><code class="swh-badge-md markdown">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</code></pre>
47
- </div>
48
- <div>
49
- <label>reStructuredText</label>
50
- <pre class="swh-badge-rst">.. image:: ${absoluteBadgeImageUrl}
51
- :target: ${absoluteBadgeLinkUrl}</pre>
56
+ </div>
57
+ <div class="tab-pane" id="swh-badge-markdown">
58
+ <pre><code class="swh-badge-md markdown">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</code></pre>
59
+ </div>
60
+ <div class="tab-pane" id="swh-badge-rst">
61
+ <pre class="swh-badge-rst">.. image:: ${absoluteBadgeImageUrl}
62
+ :target: ${absoluteBadgeLinkUrl}</pre>
63
+ </div>
64
+ <button type="button"
65
+ class="btn btn-secondary btn-sm btn-swh-copy-badge-code float-end"
66
+ title="Copy badge code to clipboard">
67
+ <i class="mdi mdi-content-copy mdi-fw" aria-hidden="true"></i>Copy badge code
68
+ </button>
52
69
  </div>`;
53
70
  swh.webapp.showModalHtml('Software Heritage badge integration', html);
54
71
  swh.webapp.highlightCode(false, '.swh-badge-html');
55
72
  swh.webapp.highlightCode(false, '.swh-badge-md');
73
+ new ClipboardJS('.btn-swh-copy-badge-code', {
74
+ text: () => {
75
+ return $('.swh-badges-integrations .tab-pane.active pre').text();
76
+ },
77
+ container: document.getElementById('swh-web-modal-html')
78
+ }).on('success', function(e) {
79
+ swh.webapp.toggleButtonText(e.trigger, 'Copied!');
80
+ e.clearSelection();
81
+ });
56
82
  }
@@ -151,4 +151,9 @@ td.swh-branch-date {
151
151
  .btn-swhid-copy, .btn-swhid-url-copy, .btn-citation-copy {
152
152
  width: 125px;
153
153
  height: 32px;
154
+ }
155
+
156
+ .btn-swh-copy-badge-code {
157
+ width: 128px;
158
+ height: 32px;
154
159
  }
@@ -183,26 +183,13 @@ export async function generateCitationForObjectType(event) {
183
183
  export async function initSideTabs() {
184
184
 
185
185
  $(document).ready(() => {
186
- const toggleButtonText = (button, text) => {
187
- const currentLabel = button.innerHTML;
188
-
189
- if (currentLabel === text) {
190
- return;
191
- }
192
-
193
- button.innerHTML = text;
194
- setTimeout(function() {
195
- button.innerHTML = currentLabel;
196
- }, 1000);
197
- };
198
-
199
186
  new ClipboardJS('.btn-swhid-copy', {
200
187
  text: trigger => {
201
188
  const swhId = $(trigger).closest('.swhid-ui').find('.swhid').text();
202
189
  return swhId.replace(/;\n/g, ';');
203
190
  }
204
191
  }).on('success', function(e) {
205
- toggleButtonText(e.trigger, 'Copied!');
192
+ swh.webapp.toggleButtonText(e.trigger, 'Copied!');
206
193
  e.clearSelection();
207
194
  });
208
195
 
@@ -212,7 +199,7 @@ export async function initSideTabs() {
212
199
  return window.location.origin + swhIdUrl;
213
200
  }
214
201
  }).on('success', function(e) {
215
- toggleButtonText(e.trigger, 'Copied!');
202
+ swh.webapp.toggleButtonText(e.trigger, 'Copied!');
216
203
  e.clearSelection();
217
204
  });
218
205
 
@@ -310,7 +297,7 @@ export async function initSideTabs() {
310
297
  return citation;
311
298
  }
312
299
  }).on('success', function(e) {
313
- toggleButtonText(e.trigger, 'Copied!');
300
+ swh.webapp.toggleButtonText(e.trigger, 'Copied!');
314
301
  });
315
302
 
316
303
  const tabSlideOptionsCitations = {
@@ -1,5 +1,5 @@
1
1
  {% comment %}
2
- Copyright (C) 2021-2024 The Software Heritage developers
2
+ Copyright (C) 2021-2025 The Software Heritage developers
3
3
  See the AUTHORS file at the top-level directory of this distribution
4
4
  License: GNU Affero General Public License version 3, or any later version
5
5
  See top-level LICENSE file for more information
@@ -26,7 +26,7 @@ See top-level LICENSE file for more information
26
26
  /*
27
27
  @licstart The following is the entire license notice for the JavaScript code in this page.
28
28
 
29
- Copyright (C) 2021-2023 The Software Heritage developers
29
+ Copyright (C) 2021-2025 The Software Heritage developers
30
30
 
31
31
  This program is free software: you can redistribute it and/or modify
32
32
  it under the terms of the GNU Affero General Public License as
@@ -176,13 +176,15 @@ along with this program. If not, see <https://www.gnu.org/licenses />.
176
176
  {% if "swh.web.jslicenses" in SWH_DJANGO_APPS %}
177
177
  <a href="{% url 'jslicenses' %}" rel="jslicense" style="display: none;">JavaScript license information</a>
178
178
  {% endif %}
179
- {% if object_type == "cnt" %}
179
+ {% if object_type == "cnt" and lines %}
180
+ {{ lines|swh_json_script:"lines" }}
180
181
  <script>
182
+ const lines = swh.webapp.parseJsonScript('lines');
181
183
  setTimeout(function() {
182
- {% if lines %}
183
- swh.webapp.scrollToLine(swh.webapp.highlightLine({{ lines.0|jsonify }}), 100);
184
- swh.webapp.highlightLines({{ lines.0|jsonify }}, {{ lines.1|jsonify }});
185
- {% endif %}
184
+ swh.webapp.scrollToLine(swh.webapp.highlightLine(lines[0]), 100);
185
+ if (lines[1]) {
186
+ swh.webapp.highlightLines(lines[0], lines[1]);
187
+ }
186
188
  }, 500);
187
189
  </script>
188
190
  {% endif %}
@@ -89,9 +89,9 @@ See top-level LICENSE file for more information
89
89
  <h5>List</h5>
90
90
  <div id="swh-visits-list"></div>
91
91
  </div>
92
+ {{ origin_visits|swh_json_script:"origin_visits" }}
92
93
  <script>
93
94
  // all origin visits
94
- var visits = {{ origin_visits|jsonify }};
95
- swh.origin_visits.initVisitsReporting(visits);
95
+ swh.origin_visits.initVisitsReporting(swh.webapp.parseJsonScript('origin_visits'));
96
96
  </script>
97
97
  {% endblock swh-browse-content %}
@@ -1,7 +1,7 @@
1
1
  {% extends "./browse.html" %}
2
2
 
3
3
  {% comment %}
4
- Copyright (C) 2017-2024 The Software Heritage developers
4
+ Copyright (C) 2017-2025 The Software Heritage developers
5
5
  See the AUTHORS file at the top-level directory of this distribution
6
6
  License: GNU Affero General Public License version 3, or any later version
7
7
  See top-level LICENSE file for more information
@@ -119,9 +119,11 @@ See top-level LICENSE file for more information
119
119
  </div>
120
120
  </div>
121
121
  </div>
122
+ {{ message_body|swh_json_script:"revMsgBody" }}
123
+ {{ diff_revision_url|swh_json_script:"diffRevUrl" }}
122
124
  <script>
123
- var revMsgBody = {{ message_body|jsonify }};
124
- var diffRevUrl = {{ diff_revision_url|jsonify }};
125
+ var revMsgBody = swh.webapp.parseJsonScript('revMsgBody');
126
+ var diffRevUrl = swh.webapp.parseJsonScript('diffRevUrl');
125
127
  swh.revision.initRevisionDiff(revMsgBody, diffRevUrl);
126
128
  </script>
127
129
  {% endblock swh-browse-content %}
@@ -82,13 +82,18 @@ See top-level LICENSE file for more information
82
82
  </div>
83
83
  {% if not iframe_mode %}</div>{% endif %}
84
84
  {% if content %}
85
+ {{ filename|swh_json_script:"filename" }}
86
+ {{ mimetype|swh_json_script:"mimetype" }}
87
+ {{ top_right_link.url|swh_json_script:"content_url" }}
88
+ {{ mathjax_js_library|swh_json_script:"mathjax_js_library" }}
89
+ {{ iframe_mode|swh_json_script:"iframe_mode" }}
85
90
  <script>
86
91
  swh.content.renderContent(
87
- {{ filename|jsonify }},
88
- {{ mimetype|jsonify }},
89
- {{ top_right_link.url|jsonify }},
90
- {{ mathjax_js_library|jsonify }},
91
- !{{ iframe_mode|jsonify }}
92
+ swh.webapp.parseJsonScript('filename'),
93
+ swh.webapp.parseJsonScript('mimetype'),
94
+ swh.webapp.parseJsonScript('content_url'),
95
+ swh.webapp.parseJsonScript('mathjax_js_library'),
96
+ !swh.webapp.parseJsonScript('iframe_mode')
92
97
  );
93
98
  </script>
94
99
  {% endif %}
@@ -1,5 +1,5 @@
1
1
  {% comment %}
2
- Copyright (C) 2017-2024 The Software Heritage developers
2
+ Copyright (C) 2017-2025 The Software Heritage developers
3
3
  See the AUTHORS file at the top-level directory of this distribution
4
4
  License: GNU Affero General Public License version 3, or any later version
5
5
  See top-level LICENSE file for more information
@@ -21,8 +21,9 @@ See top-level LICENSE file for more information
21
21
  </div>
22
22
  </div>
23
23
  {% if readme_html %}
24
+ {{ readme_html|swh_json_script:"readme_html" }}
24
25
  <script>
25
- $('.swh-readme').html(swh.webapp.filterXSS({{ readme_html|jsonify }}));
26
+ $('.swh-readme').html(swh.webapp.filterXSS(swh.webapp.parseJsonScript('readme_html')));
26
27
  swh.webapp.addReadmeHeadingAnchors();
27
28
  </script>
28
29
  {% elif readme_url is None %}
@@ -1,5 +1,5 @@
1
1
  {% comment %}
2
- Copyright (C) 2017-2024 The Software Heritage developers
2
+ Copyright (C) 2017-2025 The Software Heritage developers
3
3
  See the AUTHORS file at the top-level directory of this distribution
4
4
  License: GNU Affero General Public License version 3, or any later version
5
5
  See top-level LICENSE file for more information
@@ -57,4 +57,5 @@ See top-level LICENSE file for more information
57
57
  </div>
58
58
  {% endif %}
59
59
  {% endif %}
60
- <script>swh.webapp.setBrowsedSwhObjectMetadata({{ swh_object_metadata|jsonify }})</script>
60
+ {{ swh_object_metadata|swh_json_script:"swh_object_metadata" }}
61
+ <script>swh.webapp.setBrowsedSwhObjectMetadata(swh.webapp.parseJsonScript('swh_object_metadata'))</script>
@@ -92,12 +92,13 @@ See top-level LICENSE file for more information
92
92
  title="Click to display badge integration info" />
93
93
  {% endif %}
94
94
  {% if swhid_info.object_type.name.lower == "content" or swhid_info.object_type.name.lower == "directory" %}
95
- <a class="ms-auto float-end"
96
- style="cursor: pointer"
97
- role="button"
98
- onclick="swh.browse.showIframeInfoModal('{{ swhid_info.object_type.name.lower }}', $(this).closest('.swhid-ui').find('.swhid').text())">
99
- Iframe embedding
100
- </a>
95
+ <button type="button"
96
+ class="btn btn-secondary btn-sm ms-auto float-end mb-2"
97
+ title="Display info about how to embed source code archived by Software Heritage in external websites using an iframe"
98
+ onclick="swh.browse.showIframeInfoModal('{{ swhid_info.object_type.name.lower }}', $(this).closest('.swhid-ui').find('.swhid').text())">
99
+ <i class="mdi mdi-application-brackets-outline mdi-fw"
100
+ aria-hidden="true"></i>Iframe embedding
101
+ </button>
101
102
  {% endif %}
102
103
  </div>
103
104
  {% endif %}
@@ -245,8 +246,9 @@ See top-level LICENSE file for more information
245
246
  </div>
246
247
  </div>
247
248
  {% endif %}
249
+ {{ swhids_info|swh_json_script:"swhids_info" }}
248
250
  <script>
249
- swh.webapp.setSwhIdsContext({{ swhids_info|jsonify }});
251
+ swh.webapp.setSwhIdsContext(swh.webapp.parseJsonScript('swhids_info'));
250
252
  swh.browse.initSideTabs();
251
253
  </script>
252
254
  {% endif %}
@@ -148,6 +148,7 @@ See top-level LICENSE file for more information
148
148
  </div>
149
149
  </div>
150
150
  {% include "./sidetabs.html" %}
151
+ {{ iframe_mode|swh_json_script:"iframe_mode" }}
151
152
  <script>
152
153
  var snapshotContext = false;
153
154
  var branch = false;
@@ -161,7 +162,7 @@ See top-level LICENSE file for more information
161
162
  $(".chosen-search-input").attr("aria-label", "Search language to highlight");
162
163
  });
163
164
  $(".chosen-select").chosen().change(function(event, params) {
164
- swh.content.updateLanguage(params.selected, !{{ iframe_mode|jsonify }});
165
+ swh.content.updateLanguage(params.selected, !swh.webapp.parseJsonScript('iframe_mode'));
165
166
  });
166
167
  {% endif %}
167
168
  swh.browse.initSnapshotNavigation(snapshotContext, branch !== "None");
@@ -51,7 +51,9 @@ def test_origin_visits_browse(client, archive_data, origin_with_multiple_visits)
51
51
  browse_dir_url = reverse(
52
52
  "browse-origin-directory",
53
53
  query_params={"origin_url": origin_url, "timestamp": vdate},
54
- )
54
+ ).replace(
55
+ "&", "\\u0026"
56
+ ) # & character was escaped by the swh_json_script template filter
55
57
  assert_contains(resp, browse_dir_url)
56
58
 
57
59
  _check_origin_link(resp, origin_url)
@@ -59,8 +59,13 @@ See top-level LICENSE file for more information
59
59
  </thead>
60
60
  </table>
61
61
  <p id="swh-admin-deposit-list-error"></p>
62
+ {{ request.user.username|swh_json_script:"username" }}
63
+ {{ request.user.is_staff|swh_json_script:"user_is_staff" }}
62
64
  <script>
63
65
  swh.webapp.initPage('deposit-admin');
64
- swh.deposit.initDepositAdmin({{ request.user.username|jsonify }}, {{ request.user.is_staff|jsonify }});
66
+ swh.deposit.initDepositAdmin(
67
+ swh.webapp.parseJsonScript('username'),
68
+ swh.webapp.parseJsonScript('user_is_staff')
69
+ );
65
70
  </script>
66
71
  {% endblock content %}
@@ -1,4 +1,4 @@
1
- html{height:100%;overflow-x:hidden;scroll-behavior:auto!important}body{margin:0;min-height:100%;overflow-y:clip;position:relative}*{-webkit-font-variant-ligatures:no-common-ligatures;-moz-font-variant-ligatures:no-common-ligatures;font-variant-ligatures:no-common-ligatures}a.active,a:active{outline:none}.page-item:focus-visible,.page-link:focus-visible,a:focus-visible{outline:4px solid rgba(226,0,38,.25)!important;z-index:100}.swh-top-bar a:focus-visible,footer a:focus-visible{outline:3px solid rgba(226,0,38,.75)!important}code{background-color:#f9f2f4}pre code{background-color:transparent}footer{background-color:#262626!important;color:#fff!important;font-size:.8rem;padding-bottom:10px;padding-top:10px;width:100%}footer a,footer a:hover,footer a:visited{color:#fecd1b}pre{background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;color:#212529;font-size:.8rem;padding:9.5px}.app-content{padding-top:10px}.app-main{overflow:hidden!important}.btn.active{background-color:#e7e7e7}.card{margin-bottom:5px!important;overflow-x:auto}.navbar-brand{margin-right:0;padding:5px}.table{margin-bottom:0}.swh-table thead{background-color:#f2f4f5;border-top:1px solid rgba(0,0,0,.2);font-weight:400}.swh-table-striped th{border-top:none}.swh-table-striped tbody tr:nth-child(2n){background-color:#f2f4f5!important}.swh-table-striped tbody tr:nth-child(odd){background-color:#fff!important}.table>thead>tr>th{border-bottom:1px solid #e20026;border-top:none}.table>tbody>tr>td{border-style:none}.sitename .first-word,.sitename .second-word{color:rgba(0,0,0,.75);font-size:1.2rem;font-weight:400}.sitename .first-word{font-family:Alegreya Sans,sans-serif}.sitename .second-word{font-family:Alegreya,serif}.swh-counter{font-size:150%}@media (max-width:600px){.swh-counter-container{margin-top:1rem}}.swh-http-error{margin:0 auto;text-align:center}.swh-http-error-head{color:#2d353c;font-size:30px}.swh-http-error-code{bottom:60%;color:#2d353c;font-size:96px;line-height:80px;margin-bottom:10px!important}.swh-http-error-desc{color:#647788;font-size:12px;text-align:center}.swh-http-error-desc pre{display:inline-block;max-width:800px;text-align:left;white-space:pre-wrap}.swh-list-unstyled{list-style:none}.popover{max-width:97%;z-index:40000}.modal{padding:0!important;text-align:center;z-index:50000}.modal:before{content:"";height:100%;margin-right:-4px}.modal-dialog,.modal:before{display:inline-block;vertical-align:middle}.modal-dialog{text-align:left}.dropdown-submenu{position:relative}.dropdown-submenu .dropdown-menu{left:-100%;margin-left:-2px;margin-top:-5px;top:0}.dropdown-item:focus,.dropdown-item:hover{background-color:rgba(0,0,0,.1)}a.dropdown-left:before{content:"\f035e";display:block;float:left;font-family:Material Design Icons;height:20px;margin-left:0;width:20px}.swh-navbar{border-bottom-width:5px;-webkit-border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;-webkit-border-image:-webkit-linear-gradient(left,#e20026,#fecd1b) 1 1 1 1;-moz-border-image:-moz-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;-o-border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;border-style:none none solid;margin-top:30px;padding:5px;width:100%;-webkit-box-pack:normal;-webkit-justify-content:normal;-moz-box-pack:normal;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:72px;justify-content:normal;overflow:hidden}.swh-navbar-banner{margin-top:60px!important}#back-to-top{bottom:30px;display:none;position:fixed;right:30px;z-index:10}#back-to-top a img{background-size:32px 32px;display:block;height:32px;overflow:hidden;text-indent:-999px;width:32px}.swh-top-bar{background-color:#262626;color:#fff;direction:ltr;font-size:14px;height:30px;left:0;position:fixed;text-align:center;top:0;width:100%;z-index:99999}.swh-top-bar ul{margin-top:4px;padding-left:0;white-space:nowrap}.swh-top-bar li{display:inline-block;margin-left:10px;margin-right:10px}.swh-top-bar a,.swh-top-bar a:visited{color:#fff}.swh-top-bar a.swh-current-site,.swh-top-bar a.swh-current-site:visited{color:#fecd1b}.swh-banner{border:none;height:30px;left:0;position:fixed;top:30px;width:100%;z-index:99999}.swh-banner .row{background-color:#fecd1b;color:#e20026;font-size:larger;height:30px}.swh-position-left{left:0;position:absolute}.swh-position-right{position:absolute;right:0}.swh-background-gray{background:#f6f5f4}.swh-donate-link{background-color:#e20026;border:1px solid #fecd1b;border-radius:3px;color:#fff!important;padding:3px}.swh-navbar-content h4{padding-left:15px;padding-top:11px}.swh-navbar-content .bread-crumbs{display:block;margin-left:-40px}.swh-navbar-content .bread-crumbs li.bc-no-root{padding-top:.7rem}.app-sidebar{background:#fff;max-height:-webkit-calc(100vh - 30px)!important;max-height:-moz-calc(100vh - 30px)!important;max-height:calc(100vh - 30px)!important;top:30px!important}.app-sidebar-banner{margin-top:60px}.content-wrapper{background:none}.swh-push-menu{padding-top:5px}.sidebar-brand{border-bottom:5px solid #e20026!important;font-weight:500;height:4.5rem;padding-bottom:18px;padding-left:4px;padding-top:18.5px}.brand-image{max-height:40px}.sidebar-brand:focus,.sidebar-brand:hover{background-color:#e7e7e7!important;color:#323232!important}.sidebar-menu .nav-link p{padding-top:5px}.navbar-header a,ul.dropdown-menu a,ul.nav.sidebar-menu a,ul.navbar-nav a{border-bottom-style:none;color:#323232}.nav.sidebar-menu .nav-icon
1
+ html{height:100%;overflow-x:hidden;scroll-behavior:auto!important}body{margin:0;min-height:100%;overflow-y:clip;position:relative}body.modal-open{overflow:hidden;position:fixed;width:100%}*{-webkit-font-variant-ligatures:no-common-ligatures;-moz-font-variant-ligatures:no-common-ligatures;font-variant-ligatures:no-common-ligatures}a.active,a:active{outline:none}.page-item:focus-visible,.page-link:focus-visible,a:focus-visible{outline:4px solid rgba(226,0,38,.25)!important;z-index:100}.swh-top-bar a:focus-visible,footer a:focus-visible{outline:3px solid rgba(226,0,38,.75)!important}code{background-color:#f9f2f4}pre code{background-color:transparent}footer{background-color:#262626!important;color:#fff!important;font-size:.8rem;padding-bottom:10px;padding-top:10px;width:100%}footer a,footer a:hover,footer a:visited{color:#fecd1b}pre{background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;color:#212529;font-size:.8rem;padding:9.5px}.app-content{padding-top:10px}.app-main{overflow:hidden!important}.btn.active{background-color:#e7e7e7}.card{margin-bottom:5px!important;overflow-x:auto}.navbar-brand{margin-right:0;padding:5px}.table{margin-bottom:0}.swh-table thead{background-color:#f2f4f5;border-top:1px solid rgba(0,0,0,.2);font-weight:400}.swh-table-striped th{border-top:none}.swh-table-striped tbody tr:nth-child(2n){background-color:#f2f4f5!important}.swh-table-striped tbody tr:nth-child(odd){background-color:#fff!important}.table>thead>tr>th{border-bottom:1px solid #e20026;border-top:none}.table>tbody>tr>td{border-style:none}.sitename .first-word,.sitename .second-word{color:rgba(0,0,0,.75);font-size:1.2rem;font-weight:400}.sitename .first-word{font-family:Alegreya Sans,sans-serif}.sitename .second-word{font-family:Alegreya,serif}.swh-counter{font-size:150%}@media (max-width:600px){.swh-counter-container{margin-top:1rem}}.swh-http-error{margin:0 auto;text-align:center}.swh-http-error-head{color:#2d353c;font-size:30px}.swh-http-error-code{bottom:60%;color:#2d353c;font-size:96px;line-height:80px;margin-bottom:10px!important}.swh-http-error-desc{color:#647788;font-size:12px;text-align:center}.swh-http-error-desc pre{display:inline-block;max-width:800px;text-align:left;white-space:pre-wrap}.swh-list-unstyled{list-style:none}.popover{max-width:97%;z-index:40000}.modal{padding:0!important;text-align:center;z-index:50000}.modal:before{content:"";height:100%;margin-right:-4px}.modal-dialog,.modal:before{display:inline-block;vertical-align:middle}.modal-dialog{text-align:left}.dropdown-submenu{position:relative}.dropdown-submenu .dropdown-menu{left:-100%;margin-left:-2px;margin-top:-5px;top:0}.dropdown-item:focus,.dropdown-item:hover{background-color:rgba(0,0,0,.1)}a.dropdown-left:before{content:"\f035e";display:block;float:left;font-family:Material Design Icons;height:20px;margin-left:0;width:20px}.swh-navbar{border-bottom-width:5px;-webkit-border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;-webkit-border-image:-webkit-linear-gradient(left,#e20026,#fecd1b) 1 1 1 1;-moz-border-image:-moz-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;-o-border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;border-style:none none solid;margin-top:30px;padding:5px;width:100%;-webkit-box-pack:normal;-webkit-justify-content:normal;-moz-box-pack:normal;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:72px;justify-content:normal;overflow:hidden}.swh-navbar-banner{margin-top:60px!important}#back-to-top{bottom:30px;display:none;position:fixed;right:30px;z-index:10}#back-to-top a img{background-size:32px 32px;display:block;height:32px;overflow:hidden;text-indent:-999px;width:32px}.swh-top-bar{background-color:#262626;color:#fff;direction:ltr;font-size:14px;height:30px;left:0;position:fixed;text-align:center;top:0;width:100%;z-index:99999}.swh-top-bar ul{margin-top:4px;padding-left:0;white-space:nowrap}.swh-top-bar li{display:inline-block;margin-left:10px;margin-right:10px}.swh-top-bar a,.swh-top-bar a:visited{color:#fff}.swh-top-bar a.swh-current-site,.swh-top-bar a.swh-current-site:visited{color:#fecd1b}.swh-banner{border:none;height:30px;left:0;position:fixed;top:30px;width:100%;z-index:99999}.swh-banner .row{background-color:#fecd1b;color:#e20026;font-size:larger;height:30px}.swh-position-left{left:0;position:absolute}.swh-position-right{position:absolute;right:0}.swh-background-gray{background:#f6f5f4}.swh-donate-link{background-color:#e20026;border:1px solid #fecd1b;border-radius:3px;color:#fff!important;padding:3px}.swh-navbar-content h4{padding-left:15px;padding-top:11px}.swh-navbar-content .bread-crumbs{display:block;margin-left:-40px}.swh-navbar-content .bread-crumbs li.bc-no-root{padding-top:.7rem}.app-sidebar{background:#fff;max-height:-webkit-calc(100vh - 30px)!important;max-height:-moz-calc(100vh - 30px)!important;max-height:calc(100vh - 30px)!important;top:30px!important}.app-sidebar-banner{margin-top:60px}.content-wrapper{background:none}.swh-push-menu{padding-top:5px}.sidebar-brand{border-bottom:5px solid #e20026!important;font-weight:500;height:4.5rem;padding-bottom:18px;padding-left:4px;padding-top:18.5px}.brand-image{max-height:40px}.sidebar-brand:focus,.sidebar-brand:hover{background-color:#e7e7e7!important;color:#323232!important}.sidebar-menu .nav-link p{padding-top:5px}.navbar-header a,ul.dropdown-menu a,ul.nav.sidebar-menu a,ul.navbar-nav a{border-bottom-style:none;color:#323232}.nav.sidebar-menu .nav-icon
2
2
 
3
3
  .nav-tabs .nav-link.active{border-top:3px solid #e20026}.swh-menu-item .nav-icon{color:#e20026!important}.swh-admin-menu-item .nav-icon{color:#fecd1b!important}.swh-notification-icon{color:#e20026!important;-webkit-transform:translate(8px,-6px);-moz-transform:translate(8px,-6px);transform:translate(8px,-6px)}.swh-sidebar .nav-link.active,.swh-sidebar .nav-link:focus{background-color:#e7e7e7!important;color:#323232!important}.swh-image-error{height:auto;width:80px}@media (max-width:600px){.card{min-width:80%}.swh-image-error{height:auto;width:40px}.swh-donate-link{display:none}}.swhid{white-space:pre-wrap}.swhid .swhid-option{display:inline-block;line-height:1rem;margin-right:5px}.nav-pills .nav-link:not(.active):hover{color:rgba(0,0,0,.55)}.swh-heading-color{color:#e20026!important}.sidebar-mini.sidebar-collapse .app-sidebar:hover{max-width:4.6rem;min-width:4.6rem;width:4.6rem}.sidebar-mini.sidebar-collapse .brand-text{display:none!important}.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text,.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav.sidebar-menu .nav-link p,.sidebar-mini.sidebar-collapse .app-sidebar:hover .user-panel>.info{visibility:hidden!important}.sidebar-mini.sidebar-collapse .app-sidebar .nav-header{display:none}.swh-words-logo{color:rgba(0,0,0,.75);font-size:10pt;height:73px;left:0;pointer-events:none;position:absolute;text-align:center;top:0;width:73px}.swh-words-logo:hover{text-decoration:none}.swh-words-logo-swh{line-height:1;padding-top:13px;visibility:hidden}.sidebar-collapse .swh-words-logo-swh{visibility:visible}.sidebar-open .swh-words-logo-swh{visibility:hidden}.sidebar-open .sidebar-wrapper{padding-left:1.5rem}hr.swh-faded-line{background-image:-webkit-gradient(linear,right top,left top,from(#f0f0f0),color-stop(#8c8b8b),to(#f0f0f0));background-image:-webkit-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:-moz-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:linear-gradient(270deg,#f0f0f0,#8c8b8b,#f0f0f0);border:0;height:1px}.swh-readme h1 a,.swh-readme h2 a,.swh-readme h3 a,.swh-readme h4 a,.swh-readme h5 a,.swh-readme h6 a{color:#e20026}.swh-rst li p{margin-bottom:0}.swh-readme-txt pre{background:none;border:none;white-space:pre-wrap}.swh-coverage-info-body{max-height:150px;overflow:auto hidden}tr.swh-tr-hover-highlight:hover td{background:#ededed}tr.swh-api-doc-route a{text-decoration:none}.swh-apidoc .col{margin:10px}.swh-apidoc .swh-rst blockquote{border:0;margin:0;padding:0}a.toggle-col{text-decoration:none}a.toggle-col.col-hidden{text-decoration:line-through}.admonition.warning{background:#fcf8e3;border:1px solid #faebcc}.admonition.note{background:#dce7fc;border:1px solid #c3d6fa}.admonition.important{background:#f8e5d3;border:1px solid #de7b21}.admonition.important,.admonition.note,.admonition.warning{border-radius:4px;margin-bottom:1rem;padding:15px}.admonition.important p,.admonition.note p,.admonition.warning p{margin-bottom:0}.admonition-title{font-weight:700}.admonition-title:before{display:block;float:left;height:20px;margin-left:0;width:20px}.admonition.warning .admonition-title:before{content:"\f0026";font-family:Material Design Icons}.admonition.note .admonition-title:before{content:"\f02fc";font-family:Material Design Icons}.admonition.important .admonition-title:before{content:"\f0238";font-family:Material Design Icons}.swh-popover{max-height:50vh;overflow:auto;padding:0}@media screen and (min-width:768px){.swh-popover{max-width:50vw}}.swh-popover pre{margin-bottom:0;white-space:pre-wrap}.d3-wrapper{height:0;padding:0 0 100%;position:relative;width:100%}.d3-wrapper>svg{height:100%;left:0;position:absolute;top:0;width:100%}div.d3-tooltip{background:#fff;border:1px solid #000;border-radius:4px;font:12px sans-serif;height:auto;padding:2px;pointer-events:none;position:absolute;text-align:center;width:auto}.page-link{cursor:pointer}.wrapper{overflow:hidden}.mdi{display:inline-block}.mdi-camera{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);transform:translateY(1px)}.mdi-source-commit{-webkit-transform:translateY(2px);-moz-transform:translateY(2px);transform:translateY(2px)}.mdi-fw{text-align:center;width:1.25em}.mdi-stack{display:inline-block;height:1em;line-height:1em;position:relative;vertical-align:middle;width:1em}.mdi-stack .mdi{left:0;position:absolute;text-align:center;top:0;width:100%}.main-header .nav-link{height:inherit}.nav.sidebar-menu .nav-header:not(:first-of-type){padding-top:1rem}.nav.sidebar-menu .nav-link{padding-bottom:0;padding-top:0}.nav.sidebar-menu>.nav-item .nav-icon{vertical-align:sub}.swh-search-icon{line-height:1rem;vertical-align:middle}.swh-search-navbar{position:absolute;right:4rem;top:1rem;width:500px;z-index:50000}.swh-corner-ribbon{background:#f6f5f4;-webkit-box-shadow:0 0 3px rgba(0,0,0,.3);box-shadow:0 0 3px rgba(0,0,0,.3);color:#e20026;left:auto;letter-spacing:1px;position:absolute;right:-50px;text-align:center;top:28px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);width:200px;z-index:1000}.swh-corner-ribbon-banner{top:85px}@media screen and (max-width:600px){.swh-corner-ribbon{right:-55px;top:24px}}.invalid-feedback{font-size:100%}.swh-required-label:after{color:red;content:"*"}.docutils.literal{background-color:#f9f2f4;color:#c7254e;font-family:monospace}.swh-mirror-text-under-logo,.swh-text-under-logo{position:absolute;top:45px}.swh-text-under-logo{left:30px}.swh-mirror-text-under-logo{left:33px}.sidebar-collapse .swh-text-under-logo{left:15px}.sidebar-collapse .swh-mirror-text-under-logo{left:17px}.swh-mirror-partner-logo{height:100%;position:absolute;right:47rem;top:0;z-index:50000}.sidebar-collapse .swh-mirror-partner-logo{right:36rem}.swh-mirror-partner-logo-no-search{right:15rem}.sidebar-collapse .swh-mirror-partner-logo-no-search{right:5rem}.sidebar-collapse .swh-add-forge-now-link .mdi-open-in-new,.sidebar-collapse .swh-origin-save-link .mdi-open-in-new{left:35px;position:absolute;top:5px}#swh-web-api-link{color:#e20026}p a{text-decoration:underline}.skipnav{text-align:left}.skipnav a{background:#000;color:#fff;height:auto;left:-10000px;position:absolute;text-decoration:underline;top:5px;width:auto;z-index:100000}.skipnav a:active,.skipnav a:focus{left:5px}#swh-login,#swh-logout{text-decoration:underline}#swh-logout-form{display:inline}#swh-logout-form button{background:none;border:none;color:#fff!important;cursor:pointer;padding:0;text-decoration:underline}.select-no-arrows{background:none!important}.swh-coverage{border:none;overflow:visible;padding-top:.3rem}.swh-coverage a{text-decoration:none}.swh-coverage-col{padding-left:10px;padding-right:10px}.swh-coverage-header{padding-bottom:0;padding-top:0}.swh-coverage-logo{display:block;font-family:"object-fit: contain;";height:50px;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;width:100%}.swh-coverage-iframe{border:none;height:320px;width:100%}.swh-coverage-chevron{position:absolute;right:0}.swh-coverage .card-header .mdi{-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;-moz-transition:transform .3s ease-in-out,-moz-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out,-moz-transform .3s ease-in-out}.swh-coverage .card-header .collapsed .mdi{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);transform:rotate(90deg)}.swh-coverage-info-body{max-height:400px;overflow:auto;padding:0;scrollbar-width:thin}.swh-coverage-focus{border:2px solid #e20026!important}.swh-coverage-info-body::-webkit-scrollbar{width:4px}.swh-coverage-info-body::-webkit-scrollbar-track{background:#eff0f1}.swh-coverage-info-body::-webkit-scrollbar-thumb{background:#909396}
4
- /*# sourceMappingURL=archive_coverage.70eba3d32ed75472d638.css.map*/
4
+ /*# sourceMappingURL=archive_coverage.df54ae8fe40453ecd972.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css/archive_coverage.df54ae8fe40453ecd972.css","mappings":"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","sources":["webpack://swh/./swh/web/webapp/assets/webapp/webapp.css","webpack://swh/./swh/web/archive_coverage/assets/coverage.css"],"sourcesContent":["/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nhtml {\n height: 100%;\n overflow-x: hidden;\n scroll-behavior: auto !important;\n}\n\nbody {\n min-height: 100%;\n margin: 0;\n position: relative;\n overflow-y: clip;\n}\n\n/* Prevent scrolling of background when modal is opened */\nbody.modal-open {\n overflow: hidden;\n position: fixed;\n width: 100%;\n}\n\n\n/* The Alegreya font used in swh-web ships some ligatures producing\nconfusing text rendering, for instance the ligatures for `~` and some\ncharacters like e, y, u, ... so disable font common ligatures */\n* {\n font-variant-ligatures: no-common-ligatures;\n}\n\na:active,\na.active {\n outline: none;\n}\n\na:focus-visible,\n.page-item:focus-visible,\n.page-link:focus-visible {\n outline:rgb(226 0 38 / 25%) 4px solid !important;\n z-index: 100;\n}\n\n.swh-top-bar a:focus-visible,\nfooter a:focus-visible {\n outline:rgb(226 0 38 / 75%) 3px solid !important;\n}\n\ncode {\n background-color: #f9f2f4;\n}\n\npre code {\n background-color: transparent;\n}\n\nfooter {\n background-color: #262626 !important;\n color: #fff !important;\n font-size: 0.8rem;\n width: 100%;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\nfooter a,\nfooter a:visited,\nfooter a:hover {\n color: #fecd1b;\n}\n\n\npre {\n background-color: #f5f5f5;\n color: #212529;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 9.5px;\n font-size: 0.8rem;\n}\n\n.app-content {\n padding-top: 10px;\n}\n\n.app-main {\n overflow: hidden !important;\n}\n\n.btn.active {\n background-color: #e7e7e7;\n}\n\n.card {\n margin-bottom: 5px !important;\n overflow-x: auto;\n}\n\n\n.navbar-brand {\n padding: 5px;\n margin-right: 0;\n}\n\n.table {\n margin-bottom: 0;\n}\n\n.swh-table thead {\n background-color: #f2f4f5;\n border-top: 1px solid rgb(0 0 0 / 20%);\n font-weight: normal;\n}\n\n.swh-table-striped th {\n border-top: none;\n}\n\n.swh-table-striped tbody tr:nth-child(even) {\n background-color: #f2f4f5 !important;\n}\n\n.swh-table-striped tbody tr:nth-child(odd) {\n background-color: #fff !important;\n}\n\n.table > thead > tr > th {\n border-top: none;\n border-bottom: 1px solid #e20026;\n}\n\n.table > tbody > tr > td {\n border-style: none;\n}\n\n.sitename .first-word,\n.sitename .second-word {\n color: rgb(0 0 0 / 75%);\n font-weight: normal;\n font-size: 1.2rem;\n}\n\n.sitename .first-word {\n font-family: \"Alegreya Sans\", sans-serif;\n}\n\n.sitename .second-word {\n font-family: Alegreya, serif;\n}\n\n.swh-counter {\n font-size: 150%;\n}\n\n@media (max-width: 600px) {\n .swh-counter-container {\n margin-top: 1rem;\n }\n}\n\n.swh-http-error {\n margin: 0 auto;\n text-align: center;\n}\n\n.swh-http-error-head {\n color: #2d353c;\n font-size: 30px;\n}\n\n.swh-http-error-code {\n bottom: 60%;\n color: #2d353c;\n font-size: 96px;\n line-height: 80px;\n margin-bottom: 10px !important;\n}\n\n.swh-http-error-desc {\n font-size: 12px;\n color: #647788;\n text-align: center;\n}\n\n.swh-http-error-desc pre {\n display: inline-block;\n text-align: left;\n max-width: 800px;\n white-space: pre-wrap;\n}\n\n.swh-list-unstyled {\n list-style: none;\n}\n\n.popover {\n max-width: 97%;\n z-index: 40000;\n}\n\n.modal {\n text-align: center;\n padding: 0 !important;\n z-index: 50000;\n}\n\n.modal::before {\n content: \"\";\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n margin-right: -4px;\n}\n\n.modal-dialog {\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n}\n\n.dropdown-submenu {\n position: relative;\n}\n\n.dropdown-submenu .dropdown-menu {\n top: 0;\n left: -100%;\n margin-top: -5px;\n margin-left: -2px;\n}\n\n.dropdown-item:hover,\n.dropdown-item:focus {\n background-color: rgb(0 0 0 / 10%);\n}\n\na.dropdown-left::before {\n content: \"\\f035e\";\n font-family: \"Material Design Icons\";\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n.swh-navbar {\n border-style: solid;\n border-top-style: none;\n border-left-style: none;\n border-right-style: none;\n border-bottom-width: 5px;\n border-image:\n linear-gradient(\n to right,\n rgb(226 0 38) 0%,\n rgb(254 205 27) 100%\n )\n 1 1 1 1;\n width: 100%;\n padding: 5px;\n margin-top: 30px;\n justify-content: normal;\n flex-wrap: nowrap;\n height: 72px;\n overflow: hidden;\n}\n\n.swh-navbar-banner {\n margin-top: 60px !important;\n}\n\n#back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 10;\n}\n\n#back-to-top a img {\n display: block;\n width: 32px;\n height: 32px;\n background-size: 32px 32px;\n text-indent: -999px;\n overflow: hidden;\n}\n\n.swh-top-bar {\n direction: ltr;\n height: 30px;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 99999;\n background-color: #262626;\n color: #fff;\n text-align: center;\n font-size: 14px;\n}\n\n.swh-top-bar ul {\n margin-top: 4px;\n padding-left: 0;\n white-space: nowrap;\n}\n\n.swh-top-bar li {\n display: inline-block;\n margin-left: 10px;\n margin-right: 10px;\n}\n\n.swh-top-bar a,\n.swh-top-bar a:visited {\n color: white;\n}\n\n.swh-top-bar a.swh-current-site,\n.swh-top-bar a.swh-current-site:visited {\n color: #fecd1b;\n}\n\n.swh-banner {\n height: 30px;\n position: fixed;\n top: 30px;\n left: 0;\n width: 100%;\n z-index: 99999;\n border: none;\n}\n\n.swh-banner .row {\n height: 30px;\n background-color: #fecd1b;\n color: #e20026;\n font-size: larger;\n}\n\n.swh-position-left {\n position: absolute;\n left: 0;\n}\n\n.swh-position-right {\n position: absolute;\n right: 0;\n}\n\n.swh-background-gray {\n background: #f6f5f4;\n}\n\n.swh-donate-link {\n border: 1px solid #fecd1b;\n background-color: #e20026;\n color: white !important;\n padding: 3px;\n border-radius: 3px;\n}\n\n.swh-navbar-content h4 {\n padding-top: 11px;\n padding-left: 15px;\n}\n\n.swh-navbar-content .bread-crumbs {\n display: block;\n margin-left: -40px;\n}\n\n.swh-navbar-content .bread-crumbs li.bc-no-root {\n padding-top: 0.7rem;\n}\n\n.app-sidebar {\n background: white;\n top: 30px !important;\n max-height: calc(100vh - 30px) !important;\n}\n\n.app-sidebar-banner {\n margin-top: 60px;\n}\n\n.content-wrapper {\n background: none;\n}\n\n.swh-push-menu {\n padding-top: 5px;\n}\n\n.sidebar-brand {\n padding-top: 18.5px;\n padding-bottom: 18px;\n padding-left: 4px;\n border-bottom: 5px solid #e20026 !important;\n height: 4.5rem;\n font-weight: 500;\n}\n\n.brand-image {\n max-height: 40px;\n}\n\n.sidebar-brand:hover,\n.sidebar-brand:focus {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.sidebar-menu .nav-link p {\n padding-top: 5px;\n}\n\n.navbar-header a,\nul.dropdown-menu a,\nul.navbar-nav a,\nul.nav.sidebar-menu a {\n border-bottom-style: none;\n color: #323232;\n}\n\n.nav.sidebar-menu .nav-icon\n\n.nav-tabs .nav-link.active {\n border-top: 3px solid #e20026;\n}\n\n.swh-menu-item .nav-icon {\n color: #e20026 !important;\n}\n\n.swh-admin-menu-item .nav-icon {\n color: #fecd1b ! important;\n}\n\n.swh-notification-icon {\n color: #e20026 !important;\n transform: translate(8px, -6px);\n}\n\n.swh-sidebar .nav-link.active,\n.swh-sidebar .nav-link:focus {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.swh-image-error {\n width: 80px;\n height: auto;\n}\n\n@media (max-width: 600px) {\n .card {\n min-width: 80%;\n }\n\n .swh-image-error {\n width: 40px;\n height: auto;\n }\n\n .swh-donate-link {\n display: none;\n }\n}\n\n.swhid {\n white-space: pre-wrap;\n}\n\n.swhid .swhid-option {\n display: inline-block;\n margin-right: 5px;\n line-height: 1rem;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n color: rgb(0 0 0 / 55%);\n}\n\n.swh-heading-color {\n color: #e20026 !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar:hover {\n width: 4.6rem;\n\n /* ensure collapsed sidebar is not automatically expanded when hovering it */\n min-width: 4.6rem;\n max-width: 4.6rem;\n}\n\n.sidebar-mini.sidebar-collapse .brand-text {\n display: none !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .user-panel > .info,\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav.sidebar-menu .nav-link p,\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text {\n visibility: hidden !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar .nav-header {\n display: none;\n}\n\n.swh-words-logo {\n position: absolute;\n top: 0;\n left: 0;\n width: 73px;\n height: 73px;\n text-align: center;\n font-size: 10pt;\n color: rgb(0 0 0 / 75%);\n pointer-events: none;\n}\n\n.swh-words-logo:hover {\n text-decoration: none;\n}\n\n.swh-words-logo-swh {\n line-height: 1;\n padding-top: 13px;\n visibility: hidden;\n}\n\n.sidebar-collapse .swh-words-logo-swh {\n visibility: visible;\n}\n\n.sidebar-open .swh-words-logo-swh {\n visibility: hidden;\n}\n\n.sidebar-open .sidebar-wrapper {\n padding-left: 1.5rem;\n}\n\nhr.swh-faded-line {\n border: 0;\n height: 1px;\n background-image: linear-gradient(to left, #f0f0f0, #8c8b8b, #f0f0f0);\n}\n\n/* Ensure that section title with link is colored like standard section title */\n.swh-readme h1 a,\n.swh-readme h2 a,\n.swh-readme h3 a,\n.swh-readme h4 a,\n.swh-readme h5 a,\n.swh-readme h6 a {\n color: #e20026;\n}\n\n/* Make list compact in reStructuredText rendering */\n.swh-rst li p {\n margin-bottom: 0;\n}\n\n.swh-readme-txt pre {\n background: none;\n border: none;\n white-space: pre-wrap;\n}\n\n.swh-coverage {\n padding-top: 0.3rem;\n border: none;\n overflow: visible;\n}\n\n.swh-coverage a {\n text-decoration: none;\n}\n\n.swh-coverage-col {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.swh-coverage-header {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.swh-coverage-logo {\n display: block;\n width: 100%;\n height: 50px;\n margin-left: auto;\n margin-right: auto;\n object-fit: contain;\n\n /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */\n font-family: \"object-fit: contain;\";\n}\n\n.swh-coverage-iframe {\n width: 100%;\n height: 320px;\n border: none;\n}\n\n.swh-coverage-chevron {\n position: absolute;\n right: 0;\n}\n\n.swh-coverage .card-header .mdi {\n transition: 0.3s transform ease-in-out;\n}\n\n.swh-coverage .card-header .collapsed .mdi {\n transform: rotate(90deg);\n}\n\n.swh-coverage-info-body {\n max-height: 150px;\n overflow: auto hidden;\n scrollbar-width: thin; /* Firefox only */\n padding: 0;\n}\n\n/* Thin scrollbar for chromium based browsers */\n\n.swh-coverage-info-body::-webkit-scrollbar {\n width: 4px;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-track {\n background: #eff0f1;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-thumb {\n background: #909396;\n}\n\ntr.swh-tr-hover-highlight:hover td {\n background: #ededed;\n}\n\ntr.swh-api-doc-route a {\n text-decoration: none;\n}\n\n.swh-apidoc .col {\n margin: 10px;\n}\n\n.swh-apidoc .swh-rst blockquote {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\na.toggle-col {\n text-decoration: none;\n}\n\na.toggle-col.col-hidden {\n text-decoration: line-through;\n}\n\n.admonition.warning {\n background: #fcf8e3;\n border: 1px solid #faebcc;\n}\n\n.admonition.note {\n background: #dce7fc;\n border: 1px solid #c3d6fa;\n}\n\n.admonition.important {\n background: hsl(28.5deg 74% 90%);\n border: 1px solid hsl(28.5deg 74% 50%);\n}\n\n.admonition.warning,\n.admonition.note,\n.admonition.important {\n padding: 15px;\n border-radius: 4px;\n margin-bottom: 1rem;\n}\n\n.admonition.warning p,\n.admonition.note p,\n.admonition.important p {\n margin-bottom: 0;\n}\n\n.admonition-title {\n font-weight: bold;\n}\n\n.admonition-title::before {\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n.admonition.warning .admonition-title::before {\n content: \"\\f0026\";\n font-family: \"Material Design Icons\";\n}\n\n.admonition.note .admonition-title::before {\n content: \"\\f02fc\";\n font-family: \"Material Design Icons\";\n}\n\n.admonition.important .admonition-title::before {\n content: \"\\f0238\";\n font-family: \"Material Design Icons\";\n}\n\n.swh-popover {\n max-height: 50vh;\n overflow: auto;\n padding: 0;\n}\n\n@media screen and (min-width: 768px) {\n .swh-popover {\n max-width: 50vw;\n }\n}\n\n.swh-popover pre {\n white-space: pre-wrap;\n margin-bottom: 0;\n}\n\n.d3-wrapper {\n position: relative;\n height: 0;\n width: 100%;\n padding: 0;\n\n /* padding-bottom will be overwritten by JavaScript later */\n padding-bottom: 100%;\n}\n\n.d3-wrapper > svg {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\ndiv.d3-tooltip {\n position: absolute;\n text-align: center;\n width: auto;\n height: auto;\n padding: 2px;\n font: 12px sans-serif;\n background: white;\n border: 1px solid black;\n border-radius: 4px;\n pointer-events: none;\n}\n\n.page-link {\n cursor: pointer;\n}\n\n.wrapper {\n overflow: hidden;\n}\n\n/* Material Design icons alignment tweaks */\n\n.mdi {\n display: inline-block;\n}\n\n.mdi-camera {\n transform: translateY(1px);\n}\n\n.mdi-source-commit {\n transform: translateY(2px);\n}\n\n/* To set icons at a fixed width. Great to use when different\n icon widths throw off alignment. Courtesy of Font Awesome. */\n.mdi-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.mdi-stack {\n position: relative;\n display: inline-block;\n width: 1em;\n height: 1em;\n line-height: 1em;\n vertical-align: middle;\n}\n\n.mdi-stack .mdi {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n text-align: center;\n}\n\n.main-header .nav-link {\n height: inherit;\n}\n\n.nav.sidebar-menu .nav-header:not(:first-of-type) {\n padding-top: 1rem;\n}\n\n.nav.sidebar-menu .nav-link {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.nav.sidebar-menu > .nav-item .nav-icon {\n vertical-align: sub;\n}\n\n.swh-search-icon {\n line-height: 1rem;\n vertical-align: middle;\n}\n\n.swh-search-navbar {\n position: absolute;\n top: 1rem;\n right: 4rem;\n z-index: 50000;\n width: 500px;\n}\n\n.swh-corner-ribbon {\n width: 200px;\n background: #f6f5f4;\n color: #e20026;\n position: absolute;\n text-align: center;\n letter-spacing: 1px;\n box-shadow: 0 0 3px rgb(0 0 0 / 30%);\n top: 28px;\n right: -50px;\n left: auto;\n transform: rotate(45deg);\n z-index: 1000;\n}\n\n.swh-corner-ribbon-banner {\n top: 85px;\n}\n\n@media screen and (max-width: 600px) {\n .swh-corner-ribbon {\n top: 24px;\n right: -55px;\n }\n}\n\n.invalid-feedback {\n font-size: 100%;\n}\n\n.swh-required-label::after {\n content: \"*\";\n color: #f00;\n}\n\n.docutils.literal {\n background-color: #f9f2f4;\n color: #c7254e;\n font-family: monospace;\n}\n\n.swh-text-under-logo, .swh-mirror-text-under-logo {\n position: absolute;\n top: 45px;\n}\n\n.swh-text-under-logo {\n left: 30px;\n}\n\n.swh-mirror-text-under-logo {\n left: 33px;\n}\n\n.sidebar-collapse .swh-text-under-logo {\n left: 15px;\n}\n\n.sidebar-collapse .swh-mirror-text-under-logo {\n left: 17px;\n}\n\n.swh-mirror-partner-logo {\n position: absolute;\n top: 0;\n right: 47rem;\n z-index: 50000;\n height: 100%;\n}\n\n.sidebar-collapse .swh-mirror-partner-logo {\n right: 36rem;\n}\n\n.swh-mirror-partner-logo-no-search {\n right: 15rem;\n}\n\n.sidebar-collapse .swh-mirror-partner-logo-no-search {\n right: 5rem;\n}\n\n.sidebar-collapse .swh-origin-save-link .mdi-open-in-new,\n.sidebar-collapse .swh-add-forge-now-link .mdi-open-in-new {\n position: absolute;\n left: 35px;\n top: 5px;\n}\n\n#swh-web-api-link {\n color: #e20026;\n}\n\np a {\n text-decoration: underline;\n}\n\n.skipnav {\n text-align: left;\n}\n\n.skipnav a {\n position: absolute;\n left: -10000px;\n top: 5px;\n width: auto;\n height: auto;\n text-decoration: underline;\n background: black;\n color: white;\n z-index: 100000;\n}\n\n.skipnav a:focus,\n.skipnav a:active {\n left: 5px;\n}\n\n#swh-login,\n#swh-logout {\n text-decoration: underline;\n}\n\n#swh-logout-form {\n display: inline;;\n}\n\n#swh-logout-form button {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n text-decoration: underline;\n color: white !important;\n}\n\n.select-no-arrows {\n background: none !important;\n}\n\n\n\n","/**\n * Copyright (C) 2021-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-coverage {\n padding-top: 0.3rem;\n border: none;\n overflow: visible;\n}\n\n.swh-coverage a {\n text-decoration: none;\n}\n\n.swh-coverage-col {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.swh-coverage-header {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.swh-coverage-logo {\n display: block;\n width: 100%;\n height: 50px;\n margin-left: auto;\n margin-right: auto;\n object-fit: contain;\n\n /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */\n font-family: \"object-fit: contain;\";\n}\n\n.swh-coverage-iframe {\n width: 100%;\n height: 320px;\n border: none;\n}\n\n.swh-coverage-chevron {\n position: absolute;\n right: 0;\n}\n\n.swh-coverage .card-header .mdi {\n transition: 0.3s transform ease-in-out;\n}\n\n.swh-coverage .card-header .collapsed .mdi {\n transform: rotate(90deg);\n}\n\n.swh-coverage-info-body {\n max-height: 400px;\n overflow: auto;\n scrollbar-width: thin; /* Firefox only */\n padding: 0;\n}\n\n.swh-coverage-focus {\n border: 2px solid #e20026 !important;\n}\n\n/* Thin scrollbar for chromium based browsers */\n\n.swh-coverage-info-body::-webkit-scrollbar {\n width: 4px;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-track {\n background: #eff0f1;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-thumb {\n background: #909396;\n}\n"],"names":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ .swh-browse-bread-crumbs{font-size:inherit;margin-bottom:1px;vertical-align:text-top}.swh-browse-bread-crumbs li:nth-child(n+2):before{content:"";display:inline-block;margin:0 2px}.swh-browse-nav li a{border-radius:4px}.scrollable-menu{max-height:180px;overflow-x:hidden}.swh-loading{display:none;margin-top:10px;text-align:center}.swh-loading.show{display:block}.swh-table-cell-text-overflow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swh-directory-table{margin-bottom:0}.swh-directory-table td{border-top:1px solid #ddd!important}.swh-title-color{color:#e20026}.swh-log-entry-message{max-width:440px;min-width:440px;width:440px}.swh-search-pagination{margin-top:5px}.ui-slideouttab-panel{z-index:30000}.swh-side-tab{top:0;width:70vw}.swh-side-tab .handle{color:#fff;padding-bottom:.1em;padding-top:.1em}.swh-side-tab-content{height:100%;min-height:300px;overflow:auto}.swh-side-tab i.mdi{pointer-events:none}#swh-identifiers{border:1px solid #e20026}#swh-identifiers .handle{background-color:#e20026!important;border:1px solid #e20026!important}#swh-citations{border:1px solid #f16d20}#swh-citations .handle{background-color:#f16d20!important;border:1px solid #f16d20!important;color:#000}#swh-identifiers .handle:hover{background-color:#c30024!important;border:1px solid #c30024!important}#swh-citations .handle:hover{background-color:#d25c1c!important;border:1px solid #d25c1c!important}.swh-empty-snapshot{white-space:pre-line}td.swh-branch-name{max-width:300px}td.swh-branch-message{max-width:500px;min-width:500px}td.swh-branch-date{min-width:250px}.chosen-container-active{-webkit-box-shadow:0 0 0 .2rem rgba(226,0,38,.25);box-shadow:0 0 0 .2rem rgba(226,0,38,.25);z-index:10}#swh-tab-branches ul,#swh-tab-releases ul{list-style-type:none;padding-left:0}#swh-go-to-origin{margin-left:5px;vertical-align:middle}.citation-format{max-width:200px}.swh-citation{max-height:400px;white-space:pre-wrap}.btn-citation-copy,.btn-swhid-copy,.btn-swhid-url-copy{height:32px;width:125px}.btn-swh-copy-badge-code{height:32px;width:128px}.swh-content{background-color:#fff;background-image:none;padding:0}.swh-content pre,.swh-content pre code{margin:0;padding:0}.swh-content img,.swh-content svg{max-width:100%}.chosen-container{color:#444}.chosen-container .chosen-single div b{-webkit-filter:brightness(0);filter:brightness(0);margin-top:4px}.chosen-container .chosen-single{background-color:#f8f9fa!important;background-image:none;border-color:#ddd;border-radius:0;-webkit-box-shadow:none;box-shadow:none;font-size:14px;font-weight:400;height:100%;line-height:1.5;padding-bottom:4px;padding-top:5px}.chosen-container .chosen-single:hover{background-color:#e9ecef!important}.swh-browse-top-navigation{padding:4px 5px 7px}.swh-branches-releases{min-width:200px}.swh-branches-switch,.swh-releases-switch{padding:5px 15px!important}li.swh-branch:hover,li.swh-release:hover{background-color:#e8e8e8}.swh-branch a:hover,.swh-release a:hover{text-decoration:none}.swh-origin-visit-details,.swh-snapshot-details{text-align:center}.swh-origin-visit-details ul,.swh-snapshot-details ul{list-style:none;margin:0;padding:0}.swh-origin-visit-details li,.swh-snapshot-details li{display:inline-block;margin-left:10px;margin-right:10px;vertical-align:middle}.ui-slideouttab-handle,.ui-slideouttab-panel{background-color:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:.4em}.ui-slideouttab-panel{border:2px solid grey;display:block;position:fixed}.ui-slideouttab-ready{-webkit-transition:-webkit-transform .5s ease 0s;transition:-webkit-transform .5s ease 0s;-moz-transition:transform .5s ease 0s,-moz-transform .5s ease 0s;transition:transform .5s ease 0s;transition:transform .5s ease 0s,-webkit-transform .5s ease 0s,-moz-transform .5s ease 0s}@media print{.ui-slideouttab-panel{display:none}}.ui-slideouttab-handle{background-color:grey;color:#fff;cursor:pointer;display:block;position:absolute}.ui-slideouttab-handle-image{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0)}.ui-slideouttab-right{border-right:none;right:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);transform:translateX(100%)}.ui-slideouttab-right.ui-slideouttab-open{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0)}.ui-slideouttab-right .ui-slideouttab-handle{-webkit-transform:rotate(-90deg) translate(-100%,-100%);-moz-transform:rotate(-90deg) translate(-100%,-100%);transform:rotate(-90deg) translate(-100%,-100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ui-slideouttab-right .ui-slideouttab-handle-reverse{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;transform-origin:0 100%}.ui-slideouttab-left{border-left:none;left:0;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%)}.ui-slideouttab-left.ui-slideouttab-open{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0)}.ui-slideouttab-left .ui-slideouttab-handle{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0}.ui-slideouttab-left .ui-slideouttab-handle-reverse{-webkit-transform:rotate(-90deg) translate(100%,100%);-moz-transform:rotate(-90deg) translate(100%,100%);transform:rotate(-90deg) translate(100%,100%);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;transform-origin:100% 100%}.ui-slideouttab-top{border-top:none;top:0;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);transform:translateY(-100%)}.ui-slideouttab-top.ui-slideouttab-open{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}.ui-slideouttab-bottom{border-bottom:none;bottom:0;-webkit-transform:translateY(100%);-moz-transform:translateY(100%);transform:translateY(100%)}.ui-slideouttab-bottom.ui-slideouttab-open{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}.ui-slideouttab-left .ui-slideouttab-handle>.fa-icon,.ui-slideouttab-right .ui-slideouttab-handle>.fa-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);transform:rotate(90deg)}.ui-slideouttab-handle>.fa-icon{margin-left:.5em}.ui-slideouttab-left .ui-slideouttab-handle-rounded,.ui-slideouttab-top .ui-slideouttab-handle-rounded{border-radius:0 0 4px 4px}.ui-slideouttab-bottom .ui-slideouttab-handle-rounded,.ui-slideouttab-right .ui-slideouttab-handle-rounded{border-radius:4px 4px 0 0}code[class*=language-],pre[class*=language-]{background:none;color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;-webkit-hyphens:none;-moz-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{margin:.5em 0;overflow:visible;padding:1px;position:relative}pre[class*=language-]>code{background-attachment:local;background-color:#fdfdfd;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,rgba(69,142,209,.04)));background-image:-webkit-linear-gradient(transparent 50%,rgba(69,142,209,.04) 0);background-image:-moz-linear-gradient(transparent 50%,rgba(69,142,209,.04) 50%);background-image:linear-gradient(transparent 50%,rgba(69,142,209,.04) 0);background-origin:content-box;background-size:3em 3em;border-left:10px solid #358ccb;-webkit-box-shadow:-1px 0 0 0 #358ccb,0 0 0 1px #dfdfdf;box-shadow:-1px 0 0 0 #358ccb,0 0 0 1px #dfdfdf;position:relative;z-index:1}code[class*=language-]{display:block;height:inherit;max-height:inherit;overflow:auto;padding:0 1em}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{border:1px solid rgba(0,0,0,.1);border-radius:.3em;color:#c92c2c;display:inline;padding:.2em;position:relative;white-space:normal}pre[class*=language-]:after,pre[class*=language-]:before{bottom:.75em;-webkit-box-shadow:0 13px 8px #979797;box-shadow:0 13px 8px #979797;content:"";display:block;height:20%;left:.18em;max-height:13em;position:absolute;-webkit-transform:rotate(-2deg);-moz-transform:rotate(-2deg);transform:rotate(-2deg);width:40%}pre[class*=language-]:after{left:auto;right:.75em;-webkit-transform:rotate(2deg);-moz-transform:rotate(2deg);transform:rotate(2deg)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#7d8b99}.token.punctuation{color:#5f6364}.token.boolean,.token.constant,.token.deleted,.token.function-name,.token.number,.token.property,.token.symbol,.token.tag{color:#c92c2c}.token.attr-name,.token.builtin,.token.char,.token.function,.token.inserted,.token.selector,.token.string{color:#2f9c0a}.token.entity,.token.operator,.token.url,.token.variable{background:hsla(0,0%,100%,.5);color:#a67f59}.token.atrule,.token.attr-value,.token.class-name,.token.keyword{color:#1990b8}.token.important,.token.regex{color:#e90}.language-css .token.string,.style .token.string{background:hsla(0,0%,100%,.5);color:#a67f59}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:after,pre[class*=language-]:before{bottom:14px;-webkit-box-shadow:none;box-shadow:none}}pre[class*=language-].line-numbers.line-numbers{padding-left:0}pre[class*=language-].line-numbers.line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers.line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-bottom:0;padding-left:0;padding-top:0}pre[data-line] code{padding-left:4em;position:relative}pre .line-highlight{margin-top:0}
2
+ /*# sourceMappingURL=browse.633076034514e6a3977d.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css/browse.633076034514e6a3977d.css","mappings":"AAOA,yBACI,iBAAkB,CAElB,iBAAkB,CADlB,uBAEJ,CAEA,kDACI,UAAW,CACX,oBAAqB,CACrB,YACJ,CCVA,qBACI,iBACJ,CAEA,iBACI,gBAAiB,CACjB,iBACJ,CAEA,aACI,YAAa,CAEb,eAAgB,CADhB,iBAEJ,CAEA,kBACI,aACJ,CAEA,8BAEI,eAAgB,CAChB,sBAAuB,CAFvB,kBAGJ,CAEA,qBACI,eACJ,CAEA,wBACI,mCACJ,CAEA,iBACI,aACJ,CAEA,uBAEI,eAAgB,CADhB,eAAgB,CAEhB,WACJ,CAEA,uBACI,cACJ,CAEA,sBACI,aACJ,CAEA,cAEI,KAAM,CADN,UAEJ,CAEA,sBACI,UAAY,CAEZ,mBAAqB,CADrB,gBAEJ,CAEA,sBACI,WAAY,CACZ,gBAAiB,CACjB,aACJ,CAEA,oBACI,mBACJ,CAEA,iBACI,wBACJ,CAEA,yBACI,kCAAoC,CACpC,kCACJ,CAEA,eACI,wBACJ,CAEA,uBACI,kCAAoC,CACpC,kCAAoC,CACpC,UACJ,CAEA,+BACI,kCAAoC,CACpC,kCACJ,CAEA,6BAEI,kCAAoC,CADpC,kCAEJ,CAEA,oBACI,oBACJ,CAEA,mBACI,eACJ,CAEA,sBAEI,eAAgB,CADhB,eAEJ,CAEA,mBACI,eACJ,CAEA,yBACI,iDAA4C,CAA5C,yCAA4C,CAC5C,UACJ,CAEA,0CAEI,oBAAqB,CACrB,cACJ,CAEA,kBACI,eAAgB,CAChB,qBACJ,CAEA,iBACI,eACJ,CAEA,cAEI,gBAAiB,CADjB,oBAEJ,CAEA,uDAEI,WAAY,CADZ,WAEJ,CAEA,yBAEI,WAAY,CADZ,WAEJ,CCvJA,aAEI,qBAAuB,CADvB,qBAAsB,CAEtB,SACJ,CAEA,uCAEI,QAAS,CACT,SACJ,CAEA,kCAEI,cACJ,CAEA,kBACI,UACJ,CAEA,uCAEI,4BAAsB,CAAtB,oBAAsB,CADtB,cAEJ,CAEA,iCAII,kCAAoC,CAEpC,qBAAsB,CADtB,iBAAkB,CAFlB,eAAgB,CAIhB,uBAAgB,CAAhB,eAAgB,CAEhB,cAAe,CADf,eAAgB,CAPhB,WAAY,CACZ,eAAgB,CAShB,kBAAmB,CADnB,eAEJ,CAEA,uCACI,kCACJ,CC1CA,2BACI,mBACJ,CAEA,uBACI,eACJ,CAEA,0CAEI,0BACJ,CAEA,yCAEI,wBACJ,CAEA,yCAEI,oBACJ,CAEA,gDAEI,iBACJ,CAEA,sDAEI,eAAgB,CAChB,QAAS,CACT,SACJ,CAEA,sDAEI,oBAAqB,CAErB,gBAAiB,CACjB,iBAAkB,CAFlB,qBAGJ,CCzCA,6CACI,qBAAuB,CAEvB,6BAAsB,CAAtB,0BAAsB,CAAtB,qBAAsB,CADtB,YAEJ,CACA,sBAGI,qBAAsB,CAFzB,aAAc,CACd,cAED,CAGA,sBACC,gDAAkC,CAAlC,wCAAkC,CAAlC,gEAAkC,CAAlC,gCAAkC,CAAlC,yFACD,CAGA,aACI,sBACI,YACJ,CACJ,CAGA,uBAKI,qBAAsB,CADtB,UAAY,CADZ,cAAe,CAFf,aAAc,CACd,iBAIJ,CACA,6BACI,2BAAoB,CAApB,wBAAoB,CAApB,mBACJ,CAGA,sBAGC,iBAAkB,CAFlB,OAAU,CACV,kCAA2B,CAA3B,+BAA2B,CAA3B,0BAED,CACA,0CACC,+BAAyB,CAAzB,4BAAyB,CAAzB,uBACD,CACA,6CAEI,uDAAgD,CAAhD,oDAAgD,CAAhD,+CAAgD,CADhD,4BAAuB,CAAvB,yBAAuB,CAAvB,oBAEJ,CACA,qDAEI,gCAAyB,CAAzB,6BAAyB,CAAzB,wBAAyB,CADzB,+BAAyB,CAAzB,4BAAyB,CAAzB,uBAEJ,CAEA,qBAGC,gBAAiB,CAFjB,MAAS,CACT,mCAA4B,CAA5B,gCAA4B,CAA5B,2BAED,CACA,yCACC,+BAAyB,CAAzB,4BAAyB,CAAzB,uBACD,CACA,4CAEI,gCAAyB,CAAzB,6BAAyB,CAAzB,wBAAyB,CADzB,+BAAyB,CAAzB,4BAAyB,CAAzB,uBAEJ,CACA,oDAEI,qDAA8C,CAA9C,kDAA8C,CAA9C,6CAA8C,CAD9C,kCAA2B,CAA3B,+BAA2B,CAA3B,0BAEJ,CAEA,oBAGC,eAAgB,CAFhB,KAAQ,CACR,mCAA4B,CAA5B,gCAA4B,CAA5B,2BAED,CACA,wCACC,+BAAyB,CAAzB,4BAAyB,CAAzB,uBACD,CAEA,uBAGC,kBAAmB,CAFnB,QAAW,CACX,kCAA2B,CAA3B,+BAA2B,CAA3B,0BAED,CACA,2CACE,+BAAyB,CAAzB,4BAAyB,CAAzB,uBACF,CAGA,2GAEI,+BAAwB,CAAxB,4BAAwB,CAAxB,uBACJ,CACA,gCACI,gBACJ,CAGA,uGAEI,yBACJ,CACA,2GAEI,yBACJ,CC1GA,6CAGC,eAAgB,CADhB,UAAY,CAEZ,6DAAsE,CACtE,aAAc,CACd,eAAgB,CAChB,eAAgB,CAEhB,iBAAkB,CADlB,mBAAoB,CAEpB,gBAAiB,CAOjB,oBAAqB,CACrB,iBAAkB,CAElB,YAAa,CATb,eAAgB,CAEhB,eAAgB,CAChB,aAAc,CACd,UAMD,CAGA,sBAEC,aAAc,CACd,gBAAiB,CACjB,WAAY,CAHZ,iBAID,CAEA,2BASC,2BAA4B,CAJ5B,wBAAyB,CACzB,+HAAgF,CAAhF,gFAAgF,CAAhF,+EAAgF,CAAhF,wEAAgF,CAEhF,6BAA8B,CAD9B,uBAAwB,CAJxB,8BAA+B,CAC/B,uDAA6D,CAA7D,+CAA6D,CAH7D,iBAAkB,CAClB,SAQD,CAEA,uBAIC,aAAc,CAFd,cAAe,CADf,kBAAmB,CAInB,aAAc,CAFd,aAGD,CAGA,uDAEC,wBAAyB,CACzB,6BAA8B,CAC9B,0BAA2B,CAC3B,qBAAsB,CACtB,iBACD,CAGA,iCAKC,+BAAoC,CAFpC,kBAAoB,CACpB,aAAc,CAEd,cAAe,CAJf,YAAa,CADb,iBAAkB,CAMlB,kBACD,CAEA,yDAKC,YAAc,CAKd,qCAAgC,CAAhC,6BAAgC,CARhC,UAAW,CACX,aAAc,CAKd,UAAW,CAFX,UAAY,CAGZ,eAAgB,CALhB,iBAAkB,CAOlB,+BAAgC,CAChC,4BAA6B,CAG7B,uBAAwB,CARxB,SASD,CAEA,4BAEC,SAAU,CADV,WAAa,CAEb,8BAA+B,CAC/B,2BAA4B,CAG5B,sBACD,CAEA,8EAKC,aACD,CAEA,mBACC,aACD,CAEA,0HAQC,aACD,CAEA,0GAOC,aACD,CAEA,yDAKC,6BAAoC,CADpC,aAED,CAEA,iEAIC,aACD,CAEA,8BAEC,UACD,CAEA,iDAGC,6BAAoC,CADpC,aAED,CAEA,iBACC,eACD,CAEA,YACC,eACD,CACA,cACC,iBACD,CAEA,cACC,WACD,CAEA,iBACC,UACD,CAEA,oCACC,yDAEC,WAAY,CACZ,uBAAgB,CAAhB,eACD,CAED,CAGA,gDACC,cACD,CAEA,qDACC,kBACD,CAEA,mEACC,MACD,CAGA,iCAEC,gBAAiB,CACjB,cAAe,CAFf,aAGD,CACA,oBAEC,gBAAiB,CADjB,iBAED,CACA,oBACC,YACD","sources":["webpack://swh/./swh/web/browse/assets/browse/breadcrumbs.css","webpack://swh/./swh/web/browse/assets/browse/browse.css","webpack://swh/./swh/web/browse/assets/browse/content.css","webpack://swh/./swh/web/browse/assets/browse/snapshot-navigation.css","webpack://swh/./assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css","webpack://swh/./node_modules/prismjs/themes/prism-coy.css"],"sourcesContent":["/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-bread-crumbs {\n font-size: inherit;\n vertical-align: text-top;\n margin-bottom: 1px;\n}\n\n.swh-browse-bread-crumbs li:nth-child(n+2)::before {\n content: \"\";\n display: inline-block;\n margin: 0 2px;\n}\n","/**\n * Copyright (C) 2018-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-nav li a {\n border-radius: 4px;\n}\n\n.scrollable-menu {\n max-height: 180px;\n overflow-x: hidden;\n}\n\n.swh-loading {\n display: none;\n text-align: center;\n margin-top: 10px;\n}\n\n.swh-loading.show {\n display: block;\n}\n\n.swh-table-cell-text-overflow {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.swh-directory-table {\n margin-bottom: 0;\n}\n\n.swh-directory-table td {\n border-top: 1px solid #ddd !important;\n}\n\n.swh-title-color {\n color: #e20026;\n}\n\n.swh-log-entry-message {\n min-width: 440px;\n max-width: 440px;\n width: 440px;\n}\n\n.swh-search-pagination {\n margin-top: 5px;\n}\n\n.ui-slideouttab-panel {\n z-index: 30000;\n}\n\n.swh-side-tab {\n width: 70vw;\n top: 0;\n}\n\n.swh-side-tab .handle {\n color: white;\n padding-top: 0.1em;\n padding-bottom: 0.1em;\n}\n\n.swh-side-tab-content {\n height: 100%;\n min-height: 300px;\n overflow: auto;\n}\n\n.swh-side-tab i.mdi {\n pointer-events: none;\n}\n\n#swh-identifiers {\n border: 1px solid #e20026;\n}\n\n#swh-identifiers .handle {\n background-color: #e20026 !important;\n border: 1px solid #e20026 !important;\n}\n\n#swh-citations {\n border: 1px solid #f16d20;\n}\n\n#swh-citations .handle {\n background-color: #f16d20 !important;\n border: 1px solid #f16d20 !important;\n color: black;\n}\n\n#swh-identifiers .handle:hover {\n background-color: #c30024 !important;\n border: 1px solid #c30024 !important;\n}\n\n#swh-citations .handle:hover {\n border: 1px solid #d25c1c !important;\n background-color: #d25c1c !important;\n}\n\n.swh-empty-snapshot {\n white-space: pre-line;\n}\n\ntd.swh-branch-name {\n max-width: 300px;\n}\n\ntd.swh-branch-message {\n min-width: 500px;\n max-width: 500px;\n}\n\ntd.swh-branch-date {\n min-width: 250px;\n}\n\n.chosen-container-active {\n box-shadow: 0 0 0 0.2rem rgb(226 0 38 / 25%);\n z-index: 10;\n}\n\n#swh-tab-branches ul,\n#swh-tab-releases ul {\n list-style-type: none;\n padding-left: 0;\n}\n\n#swh-go-to-origin {\n margin-left: 5px;\n vertical-align: middle;\n}\n\n.citation-format {\n max-width: 200px;\n}\n\n.swh-citation {\n white-space: pre-wrap;\n max-height: 400px;\n}\n\n.btn-swhid-copy, .btn-swhid-url-copy, .btn-citation-copy {\n width: 125px;\n height: 32px;\n}\n\n.btn-swh-copy-badge-code {\n width: 128px;\n height: 32px;\n}","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-content {\n background-image: none;\n background-color: white;\n padding: 0;\n}\n\n.swh-content pre,\n.swh-content pre code {\n margin: 0;\n padding: 0;\n}\n\n.swh-content img,\n.swh-content svg {\n max-width: 100%;\n}\n\n.chosen-container {\n color: #444;\n}\n\n.chosen-container .chosen-single div b {\n margin-top: 4px;\n filter: brightness(0%);\n}\n\n.chosen-container .chosen-single {\n height: 100%;\n line-height: 1.5;\n border-radius: 0;\n background-color: #f8f9fa !important;\n border-color: #ddd;\n background-image: none;\n box-shadow: none;\n font-weight: 400;\n font-size: 14px;\n padding-top: 5px;\n padding-bottom: 4px;\n}\n\n.chosen-container .chosen-single:hover {\n background-color: #e9ecef !important;\n}\n","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-top-navigation {\n padding: 4px 5px 7px;\n}\n\n.swh-branches-releases {\n min-width: 200px;\n}\n\n.swh-branches-switch,\n.swh-releases-switch {\n padding: 5px 15px !important;\n}\n\nli.swh-branch:hover,\nli.swh-release:hover {\n background-color: #e8e8e8;\n}\n\n.swh-branch a:hover,\n.swh-release a:hover {\n text-decoration: none;\n}\n\n.swh-origin-visit-details,\n.swh-snapshot-details {\n text-align: center;\n}\n\n.swh-origin-visit-details ul,\n.swh-snapshot-details ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.swh-origin-visit-details li,\n.swh-snapshot-details li {\n display: inline-block;\n vertical-align: middle;\n margin-left: 10px;\n margin-right: 10px;\n}\n","/*\n tabSlideOUt\n\n By Michael Fielding\n License: GPL v3.0\n*/\n\n.ui-slideouttab-panel, .ui-slideouttab-handle {\n background-color: white;\n padding: 0.4em;\n box-sizing: border-box;\n}\n.ui-slideouttab-panel {\n\tdisplay: block;\n\tposition: fixed;\n border: 2px solid grey;\n}\n/* This class is added after the tabs are initialised, otherwise the user sees the\n tabs slide out of the way when the page is initialised. */\n.ui-slideouttab-ready {\n\ttransition: transform 0.5s ease 0s;\n}\n\n/* Hide tabs and panels when printed. */\n@media print {\n .ui-slideouttab-panel {\n display: none;\n }\n}\n\n/* Tab handles */\n.ui-slideouttab-handle {\n display: block;\n position: absolute;\n cursor: pointer;\n color: white;\n background-color: grey;\n}\n.ui-slideouttab-handle-image {\n transform: rotate(0);\n}\n\n/* Right */\n.ui-slideouttab-right {\n\tright: 0px;\n\ttransform: translateX(100%);\n\tborder-right: none;\n}\n.ui-slideouttab-right.ui-slideouttab-open {\n\ttransform: translateX(0%);\n}\n.ui-slideouttab-right .ui-slideouttab-handle {\n transform-origin: 0% 0%;\n transform: rotate(-90deg) translate(-100%,-100%);\n}\n.ui-slideouttab-right .ui-slideouttab-handle-reverse {\n transform-origin: 0% 100%;\n transform: rotate(-90deg);\n}\n/* Left */\n.ui-slideouttab-left {\n\tleft: 0px;\n\ttransform: translateX(-100%);\n\tborder-left: none;\n}\n.ui-slideouttab-left.ui-slideouttab-open {\n\ttransform: translateX(0%);\n}\n.ui-slideouttab-left .ui-slideouttab-handle {\n transform-origin: 100% 0%;\n transform: rotate(-90deg);\n}\n.ui-slideouttab-left .ui-slideouttab-handle-reverse {\n transform-origin: 100% 100%;\n transform: rotate(-90deg) translate(100%,100%);\n}\n/* Top */\n.ui-slideouttab-top {\n\ttop: 0px;\n\ttransform: translateY(-100%);\n\tborder-top: none;\n}\n.ui-slideouttab-top.ui-slideouttab-open {\n\ttransform: translateY(0%);\n}\n/* Bottom */\n.ui-slideouttab-bottom {\n\tbottom: 0px;\n\ttransform: translateY(100%);\n\tborder-bottom: none;\n}\n.ui-slideouttab-bottom.ui-slideouttab-open {\n\t\ttransform: translateY(0%);\n}\n\n/* turn font awesome icon in a tab upright */\n.ui-slideouttab-left .ui-slideouttab-handle>.fa-icon,\n.ui-slideouttab-right .ui-slideouttab-handle>.fa-icon {\n transform: rotate(90deg);\n}\n.ui-slideouttab-handle>.fa-icon {\n margin-left: 0.5em;\n}\n\n/* apply rounded corners if handle has the -rounded class */\n.ui-slideouttab-top .ui-slideouttab-handle-rounded,\n.ui-slideouttab-left .ui-slideouttab-handle-rounded {\n border-radius: 0 0 4px 4px;\n}\n.ui-slideouttab-right .ui-slideouttab-handle-rounded,\n.ui-slideouttab-bottom .ui-slideouttab-handle-rounded {\n border-radius: 4px 4px 0 0;\n}","/**\n * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics);\n * @author Tim Shedor\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: black;\n\tbackground: none;\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tposition: relative;\n\tmargin: .5em 0;\n\toverflow: visible;\n\tpadding: 1px;\n}\n\npre[class*=\"language-\"] > code {\n\tposition: relative;\n\tz-index: 1;\n\tborder-left: 10px solid #358ccb;\n\tbox-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;\n\tbackground-color: #fdfdfd;\n\tbackground-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);\n\tbackground-size: 3em 3em;\n\tbackground-origin: content-box;\n\tbackground-attachment: local;\n}\n\ncode[class*=\"language-\"] {\n\tmax-height: inherit;\n\theight: inherit;\n\tpadding: 0 1em;\n\tdisplay: block;\n\toverflow: auto;\n}\n\n/* Margin bottom to accommodate shadow */\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground-color: #fdfdfd;\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmargin-bottom: 1em;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tposition: relative;\n\tpadding: .2em;\n\tborder-radius: 0.3em;\n\tcolor: #c92c2c;\n\tborder: 1px solid rgba(0, 0, 0, 0.1);\n\tdisplay: inline;\n\twhite-space: normal;\n}\n\npre[class*=\"language-\"]:before,\npre[class*=\"language-\"]:after {\n\tcontent: '';\n\tdisplay: block;\n\tposition: absolute;\n\tbottom: 0.75em;\n\tleft: 0.18em;\n\twidth: 40%;\n\theight: 20%;\n\tmax-height: 13em;\n\tbox-shadow: 0px 13px 8px #979797;\n\t-webkit-transform: rotate(-2deg);\n\t-moz-transform: rotate(-2deg);\n\t-ms-transform: rotate(-2deg);\n\t-o-transform: rotate(-2deg);\n\ttransform: rotate(-2deg);\n}\n\npre[class*=\"language-\"]:after {\n\tright: 0.75em;\n\tleft: auto;\n\t-webkit-transform: rotate(2deg);\n\t-moz-transform: rotate(2deg);\n\t-ms-transform: rotate(2deg);\n\t-o-transform: rotate(2deg);\n\ttransform: rotate(2deg);\n}\n\n.token.comment,\n.token.block-comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: #7D8B99;\n}\n\n.token.punctuation {\n\tcolor: #5F6364;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.function-name,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #c92c2c;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.function,\n.token.builtin,\n.token.inserted {\n\tcolor: #2f9c0a;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.token.variable {\n\tcolor: #a67f59;\n\tbackground: rgba(255, 255, 255, 0.5);\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword,\n.token.class-name {\n\tcolor: #1990b8;\n}\n\n.token.regex,\n.token.important {\n\tcolor: #e90;\n}\n\n.language-css .token.string,\n.style .token.string {\n\tcolor: #a67f59;\n\tbackground: rgba(255, 255, 255, 0.5);\n}\n\n.token.important {\n\tfont-weight: normal;\n}\n\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n@media screen and (max-width: 767px) {\n\tpre[class*=\"language-\"]:before,\n\tpre[class*=\"language-\"]:after {\n\t\tbottom: 14px;\n\t\tbox-shadow: none;\n\t}\n\n}\n\n/* Plugin styles: Line Numbers */\npre[class*=\"language-\"].line-numbers.line-numbers {\n\tpadding-left: 0;\n}\n\npre[class*=\"language-\"].line-numbers.line-numbers code {\n\tpadding-left: 3.8em;\n}\n\npre[class*=\"language-\"].line-numbers.line-numbers .line-numbers-rows {\n\tleft: 0;\n}\n\n/* Plugin styles: Line Highlight */\npre[class*=\"language-\"][data-line] {\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left: 0;\n}\npre[data-line] code {\n\tposition: relative;\n\tpadding-left: 4em;\n}\npre .line-highlight {\n\tmargin-top: 0;\n}\n"],"names":[],"sourceRoot":""}